Skip to content

Errors

What an error looks like, and what to do about it.


Error shape

Every error has the same shape. message is written for a person; branch on error. Quote the request_id when you contact Manifest.

{
  "error": "unauthorized",
  "message": "That API key is not recognised.",
  "request_id": "…"
}

Any path outside /v1/* answers 404 with "error": "not_found" and "No such API route." A content or file update error also names the field, for example "field": "articles[1].slug" or "field": "files[0].path".


What to do

Status What to do
400, 422 Fix the request. The message says what is wrong; don't retry unchanged.
401 Check the key. A revoked key stays revoked.
402 pro_required: the feature is part of Pro. Upgrade the project in the dashboard, then retry.
403 A cap is reached (projects or domains), or you are a member of the project but not its owner or an admin. The message says which.
404 The project, deployment, file, or domain doesn't exist or the key can't reach it, or the route doesn't exist.
409 A conflict or an operation still running. The error code says which; retry the _in_progress ones shortly.
413 The body or a file is too large. See Limits.
429 Too many requests. Wait the number of seconds in Retry-After, then retry.
5xx Retry with the same Idempotency-Key. Failures are never stored, so the retry runs again.

Codes by topic

Each article lists its own codes:

  • Authentication: missing, invalid, and revoked keys, and the rate limit.
  • Manage: creates, source_id conflicts, the project cap, and project roles.
  • Publish: uploads, file reads and updates, promotes, rollbacks, and Pro features.
  • Content: content ingest and field errors.
  • Domains: hostnames, certificates, and the domain cap.
  • Idempotency: Idempotency-Key reuse and retries.