Developing Applications on Google Cloud: Adding User Authentication and Intelligence to Your Application Reviews
6351 reviews
Paulo V. · Reviewed 7 gün ago
Terrible, making us copy and paste into nano is the worst decision you guys have made. Just give us the working code
Noah E. · Reviewed 7 gün ago
Last step I got this error 8080 main:app [2026-03-25 14:21:52 +0000] [4326] [INFO] Starting gunicorn 23.0.0 [2026-03-25 14:21:52 +0000] [4326] [INFO] Listening at: http://0.0.0.0:8080 (4326) [2026-03-25 14:21:52 +0000] [4326] [INFO] Using worker: sync [2026-03-25 14:21:52 +0000] [4327] [INFO] Booting worker with pid: 4327 [2026-03-25 14:22:42 +0000] [4327] [ERROR] Exception in worker process Traceback (most recent call last): File "/usr/local/lib/python3.12/dist-packages/google/api_core/grpc_helpers.py", line 76, in error_remapped_callable return callable_(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_interceptor.py", line 277, in __call__ response, ignored_call = self._with_call( ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_interceptor.py", line 332, in _with_call return call.result(), call ^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_channel.py", line 440, in result raise self File "/usr/local/lib/python3.12/dist-packages/grpc/_interceptor.py", line 315, in continuation response, call = self._thunk(new_method).with_call( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_channel.py", line 1198, in with_call return _end_unary_response_blocking(state, call, True, None) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_channel.py", line 1006, in _end_unary_response_blocking raise _InactiveRpcError(state) # pytype: disable=not-instantiable ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with: status = StatusCode.UNAVAILABLE details = "Getting metadata from plugin failed with error: string indices must be integers, not 'str'" debug_error_string = "UNKNOWN:Error received from peer {grpc_message:"Getting metadata from plugin failed with error: string indices must be integers, not \'str\'", grpc_status:14}" > The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/local/lib/python3.12/dist-packages/google/api_core/retry/retry_unary.py", line 147, in retry_target result = target() ^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/timeout.py", line 130, in func_with_timeout return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/grpc_helpers.py", line 78, in error_remapped_callable raise exceptions.from_grpc_error(exc) from exc google.api_core.exceptions.ServiceUnavailable: 503 Getting metadata from plugin failed with error: string indices must be integers, not 'str' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/arbiter.py", line 608, in spawn_worker worker.init_process() File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/workers/base.py", line 135, in init_process self.load_wsgi() File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/workers/base.py", line 147, in load_wsgi self.wsgi = self.app.wsgi() ^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/app/base.py", line 66, in wsgi self.callable = self.load() ^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py", line 57, in load return self.load_wsgiapp() student_00_76a4d0363ae4@cloudshell:~/bookshelf (qwiklabs-gcp-04-7d6a12cd143e)$ cd ~/bookshelf; EXTERNAL_HOST_URL="https://8080-$WEB_HOST" ~/.local/bin/gunicorn -b :8080 main:app [2026-03-25 14:24:14 +0000] [4424] [INFO] Starting gunicorn 23.0.0 [2026-03-25 14:24:14 +0000] [4424] [INFO] Listening at: http://0.0.0.0:8080 (4424) [2026-03-25 14:24:14 +0000] [4424] [INFO] Using worker: sync [2026-03-25 14:24:14 +0000] [4425] [INFO] Booting worker with pid: 4425 [2026-03-25 14:24:46 +0000] [4425] [ERROR] Exception in worker process Traceback (most recent call last): File "/usr/local/lib/python3.12/dist-packages/google/api_core/grpc_helpers.py", line 76, in error_remapped_callable return callable_(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_interceptor.py", line 277, in __call__ response, ignored_call = self._with_call( ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_interceptor.py", line 332, in _with_call return call.result(), call ^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_channel.py", line 440, in result raise self File "/usr/local/lib/python3.12/dist-packages/grpc/_interceptor.py", line 315, in continuation response, call = self._thunk(new_method).with_call( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_channel.py", line 1198, in with_call return _end_unary_response_blocking(state, call, True, None) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_channel.py", line 1006, in _end_unary_response_blocking raise _InactiveRpcError(state) # pytype: disable=not-instantiable ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with: status = StatusCode.UNAVAILABLE details = "Getting metadata from plugin failed with error: string indices must be integers, not 'str'" debug_error_string = "UNKNOWN:Error received from peer {grpc_status:14, grpc_message:"Getting metadata from plugin failed with error: string indices must be integers, not \'str\'"}" > The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/local/lib/python3.12/dist-packages/google/api_core/retry/retry_unary.py", line 147, in retry_target result = target() ^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/timeout.py", line 130, in func_with_timeout return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/grpc_helpers.py", line 78, in error_remapped_callable raise exceptions.from_grpc_error(exc) from exc google.api_core.exceptions.ServiceUnavailable: 503 Getting metadata from plugin failed with error: string indices must be integers, not 'str' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/arbiter.py", line 608, in spawn_worker worker.init_process() File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/workers/base.py", line 135, in init_process self.load_wsgi() File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/workers/base.py", line 147, in load_wsgi self.wsgi = self.app.wsgi() ^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/app/base.py", line 66, in wsgi self.callable = self.load() ^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py", line 57, in load return self.load_wsgiapp() ^^^^^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py", line 47, in load_wsgiapp return util.import_app(self.app_uri) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/util.py", line 370, in import_app mod = importlib.import_module(module) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1387, in _gcd_import File "<frozen importlib._bootstrap>", line 1360, in _find_and_load File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 935, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 995, in exec_module File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed File "/home/student_00_76a4d0363ae4/bookshelf/main.py", line 40, in <module> SECRET_KEY=secrets.get_secret('flask-secret-key'), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/bookshelf/secrets.py", line 14, in get_secret response = client.access_secret_version(name=name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/google/cloud/secretmanager_v1/services/secret_manager_service/client.py", line 1857, in access_secret_version response = rpc( ^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/gapic_v1/method.py", line 131, in __call__ return wrapped_func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/retry/retry_unary.py", line 294, in retry_wrapped_func return retry_target( ^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/retry/retry_unary.py", line 156, in retry_target next_sleep = _retry_error_helper( ^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/retry/retry_base.py", line 229, in _retry_error_helper raise final_exc from source_exc google.api_core.exceptions.RetryError: Timeout of 60.0s exceeded, last exception: 503 Getting metadata from plugin failed with error: string indices must be integers, not 'str' [2026-03-25 14:24:46 +0000] [4425] [INFO] Worker exiting (pid: 4425) [2026-03-25 14:24:46 +0000] [4424] [ERROR] Worker (pid:4425) exited with code 3 [2026-03-25 14:24:46 +0000] [4424] [ERROR] Shutting down: Master [2026-03-25 14:24:46 +0000] [4424] [ERROR] Reason: Worker failed to boot. student_00_76a4d0363ae4@cloudshell:~/bookshelf (qwiklabs-gcp-04-7d6a12cd143e)$ student_00_76a4d0363ae4@cloudshell:~/bookshelf (qwiklabs-gcp-04-7d6a12cd143e)$ student_00_76a4d0363ae4@cloudshell:~/bookshelf (qwiklabs-gcp-04-7d6a12cd143e)$ student_00_76a4d0363ae4@cloudshell:~/bookshelf (qwiklabs-gcp-04-7d6a12cd143e)$ cd ~/bookshelf; EXTERNAL_HOST_URL="https://8080-$WEB_HOST" ~/.local/bin/gunicorn -b :8080 main:app [2026-03-25 14:27:18 +0000] [4455] [INFO] Starting gunicorn 23.0.0 [2026-03-25 14:27:18 +0000] [4455] [INFO] Listening at: http://0.0.0.0:8080 (4455) [2026-03-25 14:27:18 +0000] [4455] [INFO] Using worker: sync [2026-03-25 14:27:18 +0000] [4456] [INFO] Booting worker with pid: 4456 [2026-03-25 14:27:53 +0000] [4456] [ERROR] Exception in worker process Traceback (most recent call last): File "/usr/local/lib/python3.12/dist-packages/google/api_core/grpc_helpers.py", line 76, in error_remapped_callable return callable_(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_interceptor.py", line 277, in __call__ response, ignored_call = self._with_call( ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_interceptor.py", line 332, in _with_call return call.result(), call ^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_channel.py", line 440, in result raise self File "/usr/local/lib/python3.12/dist-packages/grpc/_interceptor.py", line 315, in continuation response, call = self._thunk(new_method).with_call( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_channel.py", line 1198, in with_call return _end_unary_response_blocking(state, call, True, None) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_channel.py", line 1006, in _end_unary_response_blocking raise _InactiveRpcError(state) # pytype: disable=not-instantiable ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with: status = StatusCode.UNAVAILABLE details = "Getting metadata from plugin failed with error: string indices must be integers, not 'str'" debug_error_string = "UNKNOWN:Error received from peer {grpc_message:"Getting metadata from plugin failed with error: string indices must be integers, not \'str\'", grpc_status:14}" > The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/local/lib/python3.12/dist-packages/google/api_core/retry/retry_unary.py", line 147, in retry_target result = target() ^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/timeout.py", line 130, in func_with_timeout return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/grpc_helpers.py", line 78, in error_remapped_callable raise exceptions.from_grpc_error(exc) from exc google.api_core.exceptions.ServiceUnavailable: 503 Getting metadata from plugin failed with error: string indices must be integers, not 'str' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/arbiter.py", line 608, in spawn_worker worker.init_process() File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/workers/base.py", line 135, in init_process self.load_wsgi() File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/workers/base.py", line 147, in load_wsgi self.wsgi = self.app.wsgi() ^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/app/base.py", line 66, in wsgi self.callable = self.load() ^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py", line 57, in load return self.load_wsgiapp() ^^^^^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py", line 47, in load_wsgiapp return util.import_app(self.app_uri) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/util.py", line 370, in import_app mod = importlib.import_module(module) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1387, in _gcd_import File "<frozen importlib._bootstrap>", line 1360, in _find_and_load File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 935, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 995, in exec_module File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed File "/home/student_00_76a4d0363ae4/bookshelf/main.py", line 40, in <module> SECRET_KEY=secrets.get_secret('flask-secret-key'), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/bookshelf/secrets.py", line 14, in get_secret response = client.access_secret_version(name=name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/google/cloud/secretmanager_v1/services/secret_manager_service/client.py", line 1857, in access_secret_version response = rpc( ^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/gapic_v1/method.py", line 131, in __call__ return wrapped_func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/retry/retry_unary.py", line 294, in retry_wrapped_func return retry_target( ^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/retry/retry_unary.py", line 156, in retry_target next_sleep = _retry_error_helper( ^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/retry/retry_base.py", line 229, in _retry_error_helper raise final_exc from source_exc google.api_core.exceptions.RetryError: Timeout of 60.0s exceeded, last exception: 503 Getting metadata from plugin failed with error: string indices must be integers, not 'str' [2026-03-25 14:27:53 +0000] [4456] [INFO] Worker exiting (pid: 4456) [2026-03-25 14:27:54 +0000] [4455] [ERROR] Worker (pid:4456) exited with code 3 [2026-03-25 14:27:54 +0000] [4455] [ERROR] Shutting down: Master [2026-03-25 14:27:54 +0000] [4455] [ERROR] Reason: Worker failed to boot. student_00_76a4d0363ae4@cloudshell:~/bookshelf (qwiklabs-gcp-04-7d6a12cd143e)$
Robson M. · Reviewed 7 gün ago
Josiah M. · Reviewed 7 gün ago
Zafer O. · Reviewed 7 gün ago
Uppaluri V. · Reviewed 7 gün ago
Pieter-Jan P. · Reviewed 7 gün ago
Rajat T. · Reviewed 7 gün ago
Ivan C. · Reviewed 8 gün ago
The lab description and steps have diferent specification in this section and in the opened lab screen, in both screen there are lack of resource and instrucion is very diffcult to follow up the instructions please help us fixing this and I can re take tha lab.
Juan C. · Reviewed 8 gün ago
good
Nasib A. · Reviewed 8 gün ago
Nasib A. · Reviewed 8 gün ago
Shashwat T. · Reviewed 8 gün ago
Amit K. · Reviewed 8 gün ago
Rebaone N. · Reviewed 8 gün ago
Sharon S. · Reviewed 8 gün ago
Nicholas H. · Reviewed 8 gün ago
Ivan C. · Reviewed 9 gün ago
Suraj A. · Reviewed 9 gün ago
unnecessary complex with python coding
Osman Ç. · Reviewed 9 gün ago
Alexey U. · Reviewed 9 gün ago
Osman Ç. · Reviewed 9 gün ago
Austin R. · Reviewed 9 gün ago
Vuyisiwe P. · Reviewed 9 gün ago
Nithish K. · Reviewed 9 gün ago
We do not ensure the published reviews originate from consumers who have purchased or used the products. Reviews are not verified by Google.