internal
500 api_error. Capa hit an unexpected error.
| HTTP status | type | Surfaces |
|---|---|---|
| 500 | api_error | REST, GraphQL |
What it means
Capa hit an unexpected error. The body has no details, by design.
| When | What the hint tells you |
|---|---|
| our fault | no hint: quote meta.requestId |
What to do
Retry once. If it repeats, report the requestId to Capa support.
The response
HTTP 500:
{
"error": {
"type": "api_error",
"code": "internal",
"message": "Internal error.",
"docs": "https://docs.capacms.com/errors/internal"
},
"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 |
|---|---|---|
| 500, or 200 on a field | 500, or 200 on a field | our bug. No details, quote the requestId. A bug met while answering one field nulls that field, with path set, and the rest of data is still answered with a 200 |
rate_limit_exceeded
429 rate_limited. Capa refused the request to protect the service, for one of two reasons the message names: too many reads running at once (the API's read gate, per client, per key or per project), or too many uncached requests from this key in a minute (the CDN's limit).
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.