Developing Applications on Google Cloud: Adding User Authentication and Intelligence to Your Application Reviews

6351 reviews

Paulo V. · Reviewed 7 days 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 days 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 days ago

Josiah M. · Reviewed 7 days ago

Zafer O. · Reviewed 7 days ago

Uppaluri V. · Reviewed 7 days ago

Pieter-Jan P. · Reviewed 7 days ago

Rajat T. · Reviewed 7 days ago

Ivan C. · Reviewed 8 days 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 days ago

good

Nasib A. · Reviewed 8 days ago

Nasib A. · Reviewed 8 days ago

Shashwat T. · Reviewed 8 days ago

Amit K. · Reviewed 8 days ago

Rebaone N. · Reviewed 8 days ago

Sharon S. · Reviewed 8 days ago

Nicholas H. · Reviewed 8 days ago

Ivan C. · Reviewed 9 days ago

Suraj A. · Reviewed 9 days ago

unnecessary complex with python coding

Osman Ç. · Reviewed 9 days ago

Alexey U. · Reviewed 9 days ago

Osman Ç. · Reviewed 9 days ago

Austin R. · Reviewed 9 days ago

Vuyisiwe P. · Reviewed 9 days ago

Nithish K. · Reviewed 9 days ago

We do not ensure the published reviews originate from consumers who have purchased or used the products. Reviews are not verified by Google.