Appearance
Errors
Errors use one body shape across capabilities. Each endpoint page lists the status codes and error codes it can return.
Error body
json
{
"success": false,
"error": "roleName must be in format \"Application:RoleName\" (e.g., \"Honeycomb:Honeycomb Read\")",
"code": "VALIDATION_ERROR",
"details": {
"fields": [
{
"field": "roleName",
"message": "Expected format: Application:RoleName",
"code": "INVALID_FORMAT"
}
]
},
"correlationId": "correlation-id",
"timestamp": "2026-10-16T00:00:00.000Z"
}| Field | Type | Description |
|---|---|---|
success | boolean | Always false on an error |
error | string | Short description safe to show to an API client |
code | string | Stable machine-readable error code. Branch on this, not on error |
details.fields | array | Field-level problems. Can be empty |
details.fields[].field | string | Field that failed |
details.fields[].message | string | What is wrong with the field |
details.fields[].code | string | Field error code |
correlationId | string | Value of Asurion-correlationid from the request |
timestamp | string | When the error happened, in ISO 8601 |
Some responses do not use the full shape. A 404 from User detail returns only success and message. A 401 has no code.
Status codes
| Status | Meaning |
|---|---|
| 400 | The request is invalid. Fix the request before retrying |
| 401 | The token, code, or password is missing or not valid |
| 403 | The caller is not allowed to do this |
| 404 | The resource was not found |
| 409 | The request conflicts with existing data |
| 500 | Something unexpected failed. Retry later and share the correlationId if it keeps failing |
Error codes
| Code | Status | When |
|---|---|---|
VALIDATION_ERROR | 400 | A field is missing, has the wrong type, or breaks a rule |
SSO_ONLY_ACCOUNT | 400 | The account uses single sign-on, so password change or reset is not available |
ENDUSER_FLOW_MISMATCH | 403 | Asurion-enduser does not match the account that owns the code |
NOT_FOUND | 404 | No matching record was found |
USERNAME_TAKEN | 409 | The username already exists |
INTERNAL_ERROR | 500 | Something unexpected failed |
Field error codes
| Code | When |
|---|---|
REQUIRED_FIELD | The field is missing |
INVALID_FORMAT | The field has the wrong shape |
APPLICATION_NOT_SUPPORTED | The application is not supported by this endpoint |
Partial failures
Batch endpoints, such as Onboarding, can return a result per item. Check success on each item, not only the HTTP status.
json
{
"index": 0,
"email": "user@example.com",
"success": false,
"userNumber": 1001,
"error": "User exists and is deactivated"
}