Skip to main content
View as Markdown

Errors

All Partner APIs return errors in a consistent JSON envelope. Every error response includes a machine-readable code, a human-readable message, and a link to this documentation.

For examples of catching API and network failures, see Error Handling.

Response Format

{
"error": {
"status_id": 3,
"code": "INVALID_ARGUMENT",
"message": "Invalid argument.",
"fields": [
{
"name": "message",
"descriptions": [
"value is not a valid email address: An email address must have an @-sign."
]
}
],
"doc_url": "https://noon-docs.noonpartners.dev/docs/overview/errors#invalid_argument"
}
}

Per-field detail lives in fields — each entry has a name (field path) and one or more descriptions. For validation errors, message is a short summary derived from the error code; read fields for what went wrong.

Errors with no field-level detail (for example an assertion failure) still include an empty fields array:

{
"error": {
"status_id": 3,
"code": "INVALID_ARGUMENT",
"message": "...",
"fields": [],
"doc_url": "https://noon-docs.noonpartners.dev/docs/overview/errors#invalid_argument"
}
}

Fields

FieldTypeDescription
status_idintegerNumeric error code matching the code name
codestringOne of the error codes listed below
messagestringHuman-readable description of the error
fieldsobject[]Affected input fields; empty array when there is no per-field detail. Each entry has name (field path) and descriptions (one or more issues for that field)
doc_urlstringLink to the relevant section of this page

Response Headers

Rate-limit headers are returned on both successful and error responses when rate limiting applies:

HeaderDescription
X-Request-IdUnique identifier for this request — include in support tickets
X-Ratelimit-RemainingRemaining requests in the current window
X-Ratelimit-Burst-RemainingRemaining burst requests
X-Ratelimit-Retry-AfterSeconds until the rate limit resets (only present when rate limited)

Error Codes

codestatus_idHTTP StatusDescription
OK0200Not an error; returned on success.
CANCELLED1499The operation was cancelled, typically by the caller.
UNKNOWN2500Unknown error.
INVALID_ARGUMENT3400The client specified an invalid argument.
DEADLINE_EXCEEDED4504The deadline expired before the operation could complete.
NOT_FOUND5404Some requested entity was not found.
ALREADY_EXISTS6409The entity that a client attempted to create already exists.
PERMISSION_DENIED7403The caller does not have permission to execute the specified operation.
RESOURCE_EXHAUSTED8429Some resource has been exhausted, perhaps a per-user quota.
FAILED_PRECONDITION9400The system is not in a state required for the operation's execution.
ABORTED10409The operation was aborted, typically due to a concurrency issue.
OUT_OF_RANGE11400The operation was attempted past the valid range.
UNIMPLEMENTED12501The operation is not implemented or not supported.
INTERNAL13500Internal error.
UNAVAILABLE14503The service is currently unavailable.
DATA_LOSS15500Unrecoverable data loss or corruption.
UNAUTHENTICATED16401The request does not have valid authentication credentials.
Ask AI about this page
Get an explanation, examples, or a summary of this doc.