Message error codes
A message's error.code says why it did not reach the handset. It appears on the message, in its status history, and per recipient in a send's response.
invalid_recipient- Status
rejected
- Charged?
- No
Not a valid mobile number once normalised.
destination_not_supported- Status
rejected
- Charged?
- No
The recipient's country is not enabled for sending.
recipient_opted_out- Status
rejected
- Charged?
- No
The number is on your suppression list.
duplicate_recipient- Status
rejected
- Charged?
- No
The same number appears earlier in the request.
template_variable_missing- Status
rejected
- Charged?
- No
A template placeholder had no value and no default. Campaigns only.
body_too_long- Status
rejected
- Charged?
- No
The batch item's body, or a campaign's message once filled in, is longer than 10 segments.
sender_id_not_approved- Status
rejected
- Charged?
- No
The sender ID is not active on any route that serves this recipient.
sender_id_suspended- Status
rejected
- Charged?
- No
The sender ID was suspended before the message was sent.
pricing_not_configured- Status
rejected
- Charged?
- No
No route is priced for the recipient's country.
insufficient_balance- Status
rejected
- Charged?
- No
There were not enough funds for this recipient. Campaigns and test sends only.
provider_rejected_recipient- Status
rejected
- Charged?
- No
The route refused the number when the message was submitted.
provider_rejected_sender_id- Status
rejected
- Charged?
- No
The route refused the sender ID. 500Calls staff are alerted.
provider_rejected_content- Status
rejected
- Charged?
- No
The route refused the message text.
dnd_blocked- Status
rejectedundelivered
- Charged?
- No when rejected; yes when undelivered
The number is on the Do-Not-Disturb list and the route cannot deliver to it.
no_provider_available- Status
failed
- Charged?
- No
No route could take the message within 4 hours.
provider_error- Status
failed
- Charged?
- No
Every route failed with a temporary error.
absent_subscriber- Status
undelivered
- Charged?
- Yes
The handset was off or out of coverage until the network gave up.
handset_error- Status
undelivered
- Charged?
- Yes
The handset could not receive the message, for example because its memory is full.
network_error- Status
undelivered
- Charged?
- Yes
The mobile network failed to deliver the message.
rejected_by_carrier- Status
undelivered
- Charged?
- Yes
The mobile network rejected the message after the route accepted it.
expired_at_carrier- Status
undelivered
- Charged?
- Yes
The network's delivery window ran out.
delivery_failed- Status
undelivered
- Charged?
- Yes
Delivery failed for a reason the network did not give.
dlr_timeout- Status
expired
- Charged?
- Yes
No delivery receipt arrived within 72 hours. A late receipt can still update the status.
cancelled_by_user- Status
cancelled
- Charged?
- No
You cancelled it through the API or the dashboard.
campaign_cancelled- Status
cancelled
- Charged?
- No
Its campaign was cancelled.
tenant_closed- Status
cancelled
- Charged?
- No
Your account was closed before it was sent.