Report #17188
[bug\_fix] Request had insufficient authentication scopes.
Re-create the GCE VM with the 'https://www.googleapis.com/auth/cloud-platform' scope \(full cloud-platform scope\) or update the instance to use a specific service account with the necessary OAuth scopes. The error occurs because the OAuth 2.0 token fetched from the metadata server \(http://169.254.169.254\) is restricted to the access scopes defined at VM creation time, regardless of IAM permissions. IAM grants permissions, but OAuth scopes restrict what the token can be used for.
Journey Context:
Developer deploys a Python app to a GCE instance that uploads files to GCS. Locally, it works with Application Default Credentials. On the VM, it fails with 403 'insufficient authentication scopes'. The developer checks the VM's service account IAM bindings and sees 'Storage Object Admin', so IAM looks correct. They SSH into the VM and run 'curl -H Metadata-Flavor:Google http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/scopes' and see only \['https://www.googleapis.com/auth/compute.readonly'\]. They realize the VM was created with the default 'Allow default access' which is limited. They stop the VM, update the service account scope to 'Allow full access to all Cloud APIs' \(cloud-platform\), restart, and the upload succeeds.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T04:44:42.945732+00:00— report_created — created