Skip to content

Error Codes Reference

Fresh -- Updated March 2026 from official Google Cloud documentation.

Complete error code table with gRPC codes, HTTP status codes, descriptions, and recommended actions.

Error Code Table

gRPC CodeHTTPStatusRetryableDescriptionAction
0200OKN/ASuccessNone needed
1499CANCELLEDNoClient cancelled the requestCheck client-side timeout settings
2500UNKNOWNYesUnknown server errorRetry with backoff; check logs
3400INVALID_ARGUMENTNoMalformed requestCheck request body, field types, required fields
4504DEADLINE_EXCEEDEDYesRequest took too longIncrease timeout; reduce request scope
5404NOT_FOUNDNoResource does not existVerify resource name and project
6409ALREADY_EXISTSNoResource already existsUse a different ID or get existing resource
7403PERMISSION_DENIEDNoInsufficient permissionsCheck IAM roles and API enablement
8429RESOURCE_EXHAUSTEDYesRate limited or quota exceededImplement backoff; request quota increase
9400FAILED_PRECONDITIONNoSystem not in required stateCheck preconditions (e.g., etag mismatch)
10409ABORTEDYesConcurrency conflictRetry (read-modify-write pattern)
11400OUT_OF_RANGENoValue outside valid rangeCheck field value constraints
12501UNIMPLEMENTEDNoMethod not supportedCheck API version and service docs
13500INTERNALYesInternal server errorRetry with backoff
14503UNAVAILABLEYesService temporarily unavailableRetry with backoff
15500DATA_LOSSNoUnrecoverable data lossContact support immediately
16401UNAUTHENTICATEDNoMissing or invalid credentialsCheck auth token, API key, or service account

Decision Diagram

Most Common Errors and Fixes

401 UNAUTHENTICATED

bash
# Check if you have valid credentials
gcloud auth print-access-token

# Re-authenticate if expired
gcloud auth login
gcloud auth application-default login

403 PERMISSION_DENIED

bash
# Check what roles your account has
gcloud projects get-iam-policy PROJECT_ID \
  --flatten="bindings[].members" \
  --filter="bindings.members:USER_EMAIL"

# Check if the API is enabled
gcloud services list --enabled | grep SERVICE_NAME

# Grant a role
gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:USER_EMAIL" \
  --role="roles/storage.objectViewer"

429 RESOURCE_EXHAUSTED

bash
# Check current quota usage in Console
# https://console.cloud.google.com/iam-admin/quotas

# Request a quota increase via Console or:
gcloud alpha services quota update \
  --service=SERVICE_NAME \
  --consumer=projects/PROJECT_ID \
  --metric=METRIC_NAME \
  --unit=1/min/{project} \
  --value=NEW_LIMIT

404 NOT_FOUND

bash
# Verify the resource exists
gcloud RESOURCE_TYPE list --project=PROJECT_ID

# Check you're using the correct project
gcloud config get-value project

# Verify the full resource name format
# Correct: projects/my-project/topics/my-topic
# Incorrect: my-topic

Retry Matrix

ErrorRetry?Strategy
400 INVALID_ARGUMENTNoFix request
401 UNAUTHENTICATEDNoFix credentials
403 PERMISSION_DENIEDNoFix IAM/enablement
404 NOT_FOUNDNoFix resource name
409 ALREADY_EXISTSNoUse existing or different ID
409 ABORTEDYesRetry immediately
429 RESOURCE_EXHAUSTEDYesExponential backoff
500 INTERNALYesExponential backoff
503 UNAVAILABLEYesExponential backoff
504 DEADLINE_EXCEEDEDYesIncrease timeout + retry

See Also