service_unavailable
503 api_error. The API was busy with other projects' reads for the whole database budget, or had no database connection free in time.
| HTTP status | type | Surfaces |
|---|---|---|
| 503 | api_error | REST, GraphQL |
What it means
The API was busy with other projects' reads for the whole database budget, or had no database connection free in time. Nothing in the request is wrong.
| When | What the hint tells you |
|---|---|
| the API process was full of other projects' reads for the whole database budget, the last slot being kept for a project with none running, or had no database connection free in time | nothing in the request is wrong: retry after Retry-After |
What to do
Retry after the Retry-After seconds.
The response
HTTP 503:
{
"error": {
"type": "api_error",
"code": "service_unavailable",
"message": "The API is busy with other reads.",
"docs": "https://docs.capacms.com/errors/service_unavailable"
},
"meta": {
"version": "2026-10-01",
"contract": 1,
"requestId": "req_0f3c…"
}
}On GraphQL
/api/graphql answers the same code inside errors[].extensions. The status depends on the Accept header you send (status codes):
application/json | graphql-response+json | When |
|---|---|---|
| 503 | 503 | the API process was full of other projects' reads for the whole database budget, the last slot being kept for a project with none running, or the database had no connection free in time. Nothing in the request is wrong: retry after Retry-After. There is no data |