API v1 · 5xx
service_unavailable
| HTTP | When |
|---|---|
| 503 | A downstream service the request needed was unavailable. |
Some endpoints call out to third parties to do their work: S3 for uploads, LinkedIn for publish and profile reads, Clerk for workspace and member metadata. When one of those is unreachable or unconfigured, the request fails with this code in the ordinary error envelope.
GET /v1/health does not emit this code. The health probe reports
degradation in its own body — a 503 carrying
{ "status": "degraded", "version", "checks" } with no error object
— so a monitor switching on error.code sees nothing there. Read
status instead. See health.
To recover:
- Treat 503 as transient. Retry with exponential backoff (e.g. start at 1 s, cap at 30 s).
- Check status.scripe.io for ongoing incidents.
- If your retry loop has been failing for more than a few minutes and
the status page is green, capture the
request_idfrom the error envelope and contact support.
We deliberately fail closed instead of returning misleading 200s when a dependency the request needed is unhealthy.