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.
HTTP status codes
Section titled “HTTP status codes”| Code | Meaning |
|---|---|
| 200 | OK |
| 201 | Created |
| 202 | Accepted — the work runs asynchronously (e.g. project/account deletion) |
| 302 | Redirect — form-encoded requests to form-friendly endpoints redirect instead of returning JSON |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 409 | Conflict — merge staleness and merge conflicts (see codes below) |
| 410 | Gone — the resource was deleted |
| 422 | Unprocessable — the request was understood but cannot be applied |
| 429 | Rate Limited |
| 500 | Server Error |
| 501 | Not Implemented |
| 502 | Bad Gateway — an upstream provider call failed |
| 503 | Service Unavailable |
Machine-readable error codes
Section titled “Machine-readable error codes”AUTH_REQUIRED— authentication neededPROJECT_NOT_FOUND— project doesn’t existRATE_LIMITED— too many requestsSTALE_BASE— the change’s recorded base is behind the project HEAD (merge.requireFreshBase); re-evaluate on the new baseSTALE_WORKSPACE— the workspace advanced after evaluation; the merge is rejected so unevaluated commits can never landWORKSPACE_UNVERIFIABLE— the workspace state could not be verified against what was evaluatedMERGE_CONFLICT— the merge produced conflicts; the response includes a conflict id forPOST /api/projects/conflicts/{id}/resolvePROTECTION_BLOCKED— the merge is blocked by branch protection; the response lists thereasonsTARGET_DELETING— the project (or its owner) is being deletedNOT_REDRIVABLE— the deletion job is not in an incomplete stateGONE— the resource was deletedINVALID_PATH— the requested path is invalid