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:
- 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 a
request_idand contact support.