Error Codes
94 standardized error codes across 12 categories for the Amplify Service API.
Error Response Format
Standard error responsejson
{
"data": null,
"error": {
"code": "AMP_AUD_001",
"message": "Audience not found",
"http": 404
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"tenant_id": "tenant-uuid",
"service": "amplify-svc",
"timestamp": "2026-03-01T00:00:00.000Z"
}
}General (AMP_*) — 8 errors
| Code | Name | Message | HTTP |
|---|---|---|---|
AMP_001 | Unknown | An unexpected error occurred | 500 |
AMP_002 | Internal Error | Internal server error | 500 |
AMP_003 | Service Unavailable | Service temporarily unavailable | 503 |
AMP_004 | Rate Limited | Rate limit exceeded. Please try again later | 429 |
AMP_005 | Timeout | Operation timed out | 504 |
AMP_006 | Bad Request | Invalid request | 400 |
AMP_007 | Not Found | Resource not found | 404 |
AMP_008 | Conflict | Resource conflict | 409 |
Audience (AMP_AUD_*) — 12 errors
| Code | Name | Message | HTTP |
|---|---|---|---|
AMP_AUD_001 | Not Found | Audience not found | 404 |
AMP_AUD_002 | Already Exists | Audience with this name already exists | 409 |
AMP_AUD_003 | Invalid Rules | Invalid segment rules | 400 |
AMP_AUD_004 | Too Large | Audience exceeds maximum size limit | 400 |
AMP_AUD_005 | Invalid Member | Invalid audience member data | 400 |
AMP_AUD_006 | Import Failed | Audience import failed | 500 |
AMP_AUD_007 | Export Failed | Audience export failed | 500 |
AMP_AUD_008 | Sync Failed | Audience sync failed | 500 |
AMP_AUD_009 | Lookalike Failed | Lookalike audience generation failed | 500 |
AMP_AUD_010 | Seed Too Small | Seed audience is too small for lookalike generation | 400 |
AMP_AUD_011 | Cannot Modify | Cannot modify audience while in use | 409 |
AMP_AUD_012 | Archived | Audience is archived and cannot be used | 410 |
Broadcast (AMP_BRD_*) — 15 errors
| Code | Name | Message | HTTP |
|---|---|---|---|
AMP_BRD_001 | Not Found | Broadcast not found | 404 |
AMP_BRD_002 | Invalid Status | Invalid broadcast status for this operation | 400 |
AMP_BRD_003 | No Recipients | Broadcast has no recipients | 400 |
AMP_BRD_004 | Invalid Schedule | Invalid broadcast schedule | 400 |
AMP_BRD_005 | Schedule In Past | Cannot schedule broadcast in the past | 400 |
AMP_BRD_006 | Already Sent | Broadcast has already been sent | 409 |
AMP_BRD_007 | Cannot Cancel | Cannot cancel broadcast in current status | 409 |
AMP_BRD_008 | Send Failed | Failed to send broadcast | 500 |
AMP_BRD_009 | Too Many Recipients | Broadcast exceeds maximum recipient limit | 400 |
AMP_BRD_010 | Missing Template | Broadcast template is required | 400 |
AMP_BRD_011 | Invalid Content | Invalid broadcast content | 400 |
AMP_BRD_012 | Channel Not Configured | Channel is not configured for this tenant | 400 |
AMP_BRD_013 | Pending Approval | Broadcast is pending approval | 409 |
AMP_BRD_014 | Retry Limit Exceeded | Broadcast retry limit exceeded | 400 |
AMP_BRD_015 | Cannot Delete | Only draft broadcasts can be deleted | 409 |
Template (AMP_TPL_*) — 10 errors
| Code | Name | Message | HTTP |
|---|---|---|---|
AMP_TPL_001 | Not Found | Template not found | 404 |
AMP_TPL_002 | Already Exists | Template with this name already exists | 409 |
AMP_TPL_003 | Invalid Syntax | Invalid template syntax | 400 |
AMP_TPL_004 | Missing Variables | Template is missing required variables | 400 |
AMP_TPL_005 | Render Failed | Failed to render template | 500 |
AMP_TPL_006 | In Use | Template is in use and cannot be deleted | 409 |
AMP_TPL_007 | Invalid Channel | Template channel is invalid | 400 |
AMP_TPL_008 | Generation Failed | AI template generation failed | 500 |
AMP_TPL_009 | Content Too Long | Template content exceeds maximum length | 400 |
AMP_TPL_010 | Version Conflict | Template version conflict | 409 |
Experiment (AMP_EXP_*) — 10 errors
| Code | Name | Message | HTTP |
|---|---|---|---|
AMP_EXP_001 | Not Found | Experiment not found | 404 |
AMP_EXP_002 | Invalid Status | Invalid experiment status for this operation | 400 |
AMP_EXP_003 | Not Enough Variants | Experiment requires at least 2 variants | 400 |
AMP_EXP_004 | Invalid Traffic Split | Traffic allocation must sum to 100% | 400 |
AMP_EXP_005 | Cannot Modify Running | Cannot modify running experiment | 409 |
AMP_EXP_006 | Already Completed | Experiment has already completed | 409 |
AMP_EXP_007 | Insufficient Data | Insufficient data for statistical significance | 400 |
AMP_EXP_008 | Winner Declared | Winner has already been declared | 409 |
AMP_EXP_009 | Cannot Start | Cannot start experiment in current state | 409 |
AMP_EXP_010 | Invalid Variant | Invalid variant configuration | 400 |
Quota (AMP_QTA_*) — 8 errors
| Code | Name | Message | HTTP |
|---|---|---|---|
AMP_QTA_001 | Exceeded | Quota exceeded | 429 |
AMP_QTA_002 | Broadcasts Exceeded | Broadcast quota exceeded for this period | 429 |
AMP_QTA_003 | Messages Exceeded | Message quota exceeded for this period | 429 |
AMP_QTA_004 | API Calls Exceeded | API call quota exceeded | 429 |
AMP_QTA_005 | Storage Exceeded | Storage quota exceeded | 429 |
AMP_QTA_006 | AI Credits Exceeded | AI generation credits exceeded | 429 |
AMP_QTA_007 | Templates Exceeded | Template quota exceeded | 429 |
AMP_QTA_008 | Audiences Exceeded | Audience quota exceeded | 429 |
Frequency Cap (AMP_FRQ_*) — 4 errors
| Code | Name | Message | HTTP |
|---|---|---|---|
AMP_FRQ_001 | Not Found | Frequency cap not found | 404 |
AMP_FRQ_002 | Already Exists | Frequency cap already exists for this configuration | 409 |
AMP_FRQ_003 | Cap Exceeded | Frequency cap exceeded for recipient | 429 |
AMP_FRQ_004 | Invalid Config | Invalid frequency cap configuration | 400 |
Suppression (AMP_SUP_*) — 4 errors
| Code | Name | Message | HTTP |
|---|---|---|---|
AMP_SUP_001 | Not Found | Suppression entry not found | 404 |
AMP_SUP_002 | Already Suppressed | Address is already suppressed | 409 |
AMP_SUP_003 | Invalid Address | Invalid suppression address | 400 |
AMP_SUP_004 | Import Failed | Suppression list import failed | 500 |
Delivery (AMP_DLV_*) — 7 errors
| Code | Name | Message | HTTP |
|---|---|---|---|
AMP_DLV_001 | Provider Error | Message provider error | 502 |
AMP_DLV_002 | Invalid Recipient | Invalid recipient address | 400 |
AMP_DLV_003 | Hard Bounce | Message permanently rejected | 400 |
AMP_DLV_004 | Soft Bounce | Message temporarily rejected | 500 |
AMP_DLV_005 | Blocked | Message blocked by provider | 403 |
AMP_DLV_006 | Content Rejected | Message content rejected by provider | 400 |
AMP_DLV_007 | Provider Unavailable | Message provider unavailable | 503 |
Validation (AMP_VAL_*) — 9 errors
| Code | Name | Message | HTTP |
|---|---|---|---|
AMP_VAL_001 | Required Field | Required field is missing | 400 |
AMP_VAL_002 | Invalid Value | Invalid field value | 400 |
AMP_VAL_003 | Invalid Format | Invalid format | 400 |
AMP_VAL_004 | Out of Range | Value is out of allowed range | 400 |
AMP_VAL_005 | Invalid Email | Invalid email address | 400 |
AMP_VAL_006 | Invalid Phone | Invalid phone number | 400 |
AMP_VAL_007 | Invalid UUID | Invalid UUID format | 400 |
AMP_VAL_008 | Invalid Date | Invalid date format | 400 |
AMP_VAL_009 | Invalid JSON | Invalid JSON format | 400 |
Authentication (AMP_AUTH_*) — 4 errors
| Code | Name | Message | HTTP |
|---|---|---|---|
AMP_AUTH_001 | Unauthorized | Authentication required | 401 |
AMP_AUTH_002 | Invalid Token | Invalid authentication token | 401 |
AMP_AUTH_003 | Token Expired | Authentication token has expired | 401 |
AMP_AUTH_004 | Invalid API Key | Invalid API key | 401 |
Authorization (AMP_AUTHZ_*) — 3 errors
| Code | Name | Message | HTTP |
|---|---|---|---|
AMP_AUTHZ_001 | Forbidden | Access denied | 403 |
AMP_AUTHZ_002 | Insufficient Permissions | Insufficient permissions for this operation | 403 |
AMP_AUTHZ_003 | Invalid Tenant | Invalid or missing tenant context | 403 |