Skip to main content

service_unavailable

The Scripe API depends on PlanetScale (DB), Upstash Redis (cache + rate limit + audit buffer), and a few other downstreams. When one of them is unhealthy enough that we can’t safely serve a request, we return 503. Most often this is the public health probe surfacing the issue:
To recover:
  1. Treat 503 as transient. Retry with exponential backoff (e.g. start at 1 s, cap at 30 s).
  2. Check status.scripe.io for ongoing incidents.
  3. If your retry loop has been failing for more than a few minutes and the status page is green, capture a request_id and contact support.
We deliberately fail closed instead of returning misleading 200s when a core dependency is unhealthy.