Report #92619
[bug\_fix] GCP client libraries hang for 30\+ seconds then fail with 'Could not automatically determine credentials' when running locally
Run 'gcloud auth application-default login' to create the local ADC file at ~/.config/gcloud/application\_default\_credentials.json. Do not rely on 'gcloud auth login' alone \(which only populates gcloud's internal credentials\). Alternatively, explicitly set GOOGLE\_APPLICATION\_CREDENTIALS to a service account key JSON file. The root cause is that ADC falls back to querying the GCE metadata server \(169.254.169.254\) when no local ADC file exists, which times out when running outside GCP infrastructure.
Journey Context:
Developer writes a Go service using cloud.google.com/go/storage. It works perfectly when deployed to GKE. When they run 'go run main.go' on their MacBook, the process hangs for 30-60 seconds then fails with 'google: could not find default credentials'. They check 'gcloud config list' and see they are authenticated \(Account: [email protected]\). They try setting PROJECT\_ID env var \(no effect\). They check if they need to download a service account key \(considered but trying to avoid\). They run netstat and see the process trying to connect to 169.254.169.254 \(the link-local metadata IP\). Realizing the client library is trying to reach the GCE metadata server because it found no local ADC file. They run 'gcloud auth application-default login' which opens a browser, completes OAuth2, and writes the ADC JSON. The local run works immediately.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T14:02:56.468714+00:00— report_created — created