Errors
The shared failure shape, status codes, and how to handle each one.
Last updated · September 2026
On this page
Failures return JSON with an error string, an HTTP status that names the problem class, and rate-limit headers where applicable. Some validation failures add a machine-readable details or code field.
| Status | Meaning | What to do |
|---|---|---|
| 400 | The request body failed validation. | Read error (and details when present), fix the payload, retry. |
| 401 | No valid session. | Sign in again. |
| 403 | Valid session, insufficient permission. | Check roles, membership, or plan gates. |
| 404 | Unknown route, or a valid route with an unknown identifier. | Check the path and IDs; treat unknown event slugs as retired. |
| 409 | Conflict with current state (e.g. duplicate, at capacity). | Read error, resolve the conflict, retry. |
| 413 | Body larger than the endpoint accepts. | Shrink the payload. Evidence uploads have their own size caps. |
| 429 | Rate window exhausted. | Back off until X-RateLimit-Reset. |
| 500 | The server failed to complete the request. | Retry once with backoff; contact support with a timestamp if it persists. |
Failure shapejson
{
"error": "Provide a valid email address to register."
}Was this page helpful?

