Introduction When a Cloud Run revision fails to start, the previous revision continues serving traffic. The new revision shows "Failed" status with an error reason.
Symptoms - Cloud Console shows revision status: "Failed" - Container logs show startup errors - Error: "The user-provided container failed to start" - Revision has 0 instances and no traffic
Common Causes - Container does not listen on the PORT environment variable - Container startup takes longer than the default timeout - Memory limit too low causing OOM during startup - Container image from private registry without proper permissions - Entrypoint or CMD misconfiguration in Dockerfile
Step-by-Step Fix 1. **Check revision error details**: ```bash gcloud run revisions describe <revision-name> --region <region> --format="value(status.conditions)" ```
- 1.Check container logs:
- 2.```bash
- 3.gcloud logging read "resource.type=cloud_run_revision AND resource.labels.revision_name=<revision>" --limit=20
- 4.
` - 5.Verify container listens on PORT:
- 6.```javascript
- 7.const port = process.env.PORT || 8080;
- 8.app.listen(port, () => console.log(
Listening on port ${port})); - 9.
` - 10.Increase memory and timeout:
- 11.```bash
- 12.gcloud run services update <service-name> --region <region> --memory 2Gi --timeout 300 --cpu 2
- 13.
` - 14.Check image permissions:
- 15.```bash
- 16.gcloud artifacts repositories add-iam-policy-binding <repo> --location <region> \
- 17.--member="serviceAccount:<project-number>-compute@developer.gserviceaccount.com" \
- 18.--role="roles/artifactregistry.reader"
- 19.
`