Skip to content

Error codes

Errors are returned as JSON: { "error": "<human-readable message>" }, with a machine-readable code field present on some errors. The per-endpoint status codes are in the OpenAPI specification.

CodeMeaning
200OK
201Created
202Accepted — the work runs asynchronously (e.g. project/account deletion)
302Redirect — form-encoded requests to form-friendly endpoints redirect instead of returning JSON
400Bad Request
401Unauthorized
403Forbidden
404Not Found
409Conflict — merge staleness and merge conflicts (see codes below)
410Gone — the resource was deleted
422Unprocessable — the request was understood but cannot be applied
429Rate Limited
500Server Error
501Not Implemented
502Bad Gateway — an upstream provider call failed
503Service Unavailable
  • AUTH_REQUIRED — authentication needed
  • PROJECT_NOT_FOUND — project doesn’t exist
  • RATE_LIMITED — too many requests
  • STALE_BASE — the change’s recorded base is behind the project HEAD (merge.requireFreshBase); re-evaluate on the new base
  • STALE_WORKSPACE — the workspace advanced after evaluation; the merge is rejected so unevaluated commits can never land
  • WORKSPACE_UNVERIFIABLE — the workspace state could not be verified against what was evaluated
  • MERGE_CONFLICT — the merge produced conflicts; the response includes a conflict id for POST /api/projects/conflicts/{id}/resolve
  • PROTECTION_BLOCKED — the merge is blocked by branch protection; the response lists the reasons
  • TARGET_DELETING — the project (or its owner) is being deleted
  • NOT_REDRIVABLE — the deletion job is not in an incomplete state
  • GONE — the resource was deleted
  • INVALID_PATH — the requested path is invalid