Understanding Message Failure Error Codes and Statuses
When a message fails to send or deliver, Telgorithm returns an error code describing why. This article lists all current error codes and what each one means. These codes are returned on the Outbound Message and via the OutboundMessageWebhook sent to the OutboundCallbackUrl configured on the Messaging Config.
General & sender errors (0-6)
Code | Meaning |
|---|---|
0 | No error |
1 | Sender phone number is invalid or undefined |
2 | Sender phone number doesn't belong to your company |
3 | Sender phone number doesn't belong to any TCR campaign |
4 | Sender phone number is not active yet |
5 | Sender phone number is in process of changing TCR campaign |
6 | Not all MNOs were selected on the currently attached TCR campaign. Please re-create the TCR campaign with all MNOs selected. |
General & sender errors indicate a problem with the Telgorithm number or the attached campaign. Ensure that you're sending messages from numbers with an Active status that are connected to approved campaigns.
Recipient errors (1001-1007)
Code | Meaning |
|---|---|
1001 | Recipient phone number is invalid or undefined |
1002 | Message cannot be sent because the recipient has opted out |
1003 | Destination number is currently unable to receive text messages (no reception or handset off). Check with the end user. |
1004 | Destination address does not have text messaging services active |
1005 | Receiver's messaging provider likely does not support MMS. Check with the end user. |
1006 | Too many recipient phone numbers specified for group MMS (max 10 allowed) |
1007 | Recipients list contains duplicated elements |
Recipient error codes relate to an issue with the recipient's mobile device. You can use the Carrier Lookup API to check if a specific phone number is able to receive texts.
Request & content errors (2001-2012)
Code | Meaning |
|---|---|
2001 | Text cannot be empty |
2002 | Text cannot be longer than 8000 characters |
2003 | Callback URL cannot be longer than 512 characters |
2004 | Expiration time provided with the request is in the past |
2005 | UTC date-time field in the request body was provided in an invalid format |
2006 | Both |
2007 | Conversation metadata is longer than 2048 characters |
2008 | Conversation metadata is not supported for group messages |
2009 | MediaUrls field contains an invalid and/or unreachable URL |
2010 | MediaUrls field can contain up to five items |
2011 | Some attachments referenced by MediaUrls exceed the maximum size limit |
2012 | Callback URL is badly formed, or its scheme is not HTTP nor HTTPS |
Request & content errors indicate a technical issue with the message request itself. Simply correct the issue and retry.
Delivery & carrier errors (3001-3020)
Code | Meaning |
|---|---|
3001 | Message exceeds your Campaign Registry (TCR) MNO-approved throughput limit. The limit is too low to accommodate a single message. |
3002 | SPAM blocking: volume/velocity policies reached and content filtering |
3003 | Equivalent to "not authorized," usually because the number does not have SMS enabled |
3004 | Temporarily unable to deliver. Retry or check with the end user. |
3005 | Message queue full |
3006 | Message submitting failed |
3007 | Priority is wrong |
3008 | Destination address does not accept messages from toll-free numbers |
3009 | Message is too long for the receiving provider |
3010 | Source phone number may not be configured correctly (also possible upstream carrier outage) |
3011 | Network error between aggregator & MNO. Please contact support for further details. |
3012 | Destination number is out of carrier funds for texting (possibly a prepaid user). Check with the end user. |
3013 | Message flagged due to a non-compliant URL |
3014 | Temporary toll-free failure, likely due to a maintenance update. Please retry a bit later. |
3015 | TCR campaign the sender number belongs to is suspended by the MNO |
3016 | TCR campaign the sender number belongs to is not yet approved by the DCA |
3017 | TCR campaign the sender number belongs to has expired or has not been shared with Telgorithm |
3018 | TCR campaign the sender number belongs to is in an erroneous state. Contact support if this persists. |
3019 | Your Telgorithm account has insufficient funds and has been suspended |
3020 | Throughput allowance reached, likely due to unregistered traffic. Please resend or await full campaign approval. |
Delivery & carrier errors are the most likely ones you may see. They indicate an upstream issue either at the DCA or carrier level, or with the recipient's handset itself. Check that the recipient's phone can receive messages, that you're not using a shortened URL or one unassociated with the campaign, and retry the message.
Unknown errors
Code | Meaning |
|---|---|
2147483647 | Unknown error |
"Unknown error" means the DCA returned an error code which we have not yet mapped. Try the message again, and reach out to us if it continues to fail: support@telgorithm.com
Upstream carrier status (DcaStatus)
In addition to the Telgorithm error codes above, we surface the raw status reported by our upstream delivery partner directly, in the DcaStatus object on a message:
providerId: abstract provider identifiercode: provider-specific status or error codename: provider-specific symbolic status/error namedescription: human-readable description from the provider
This is the unified delivery status reported by the DCA (upstream partner), separate from the Telgorithm-level error codes above. Use it for the provider's own view of why a message failed.
If you have any questions about the error codes you've received, reach us at: support@telgorithm.com
Message statuses
Every outbound message also carries a status, separate from the error codes above:
Status | Meaning |
|---|---|
Queued | The message is on hold, either due to Smart Queueing for carrier throughput limits, or because of the |
Sent | The message has been sent and received by the DCA. This is a strong signal, but not a delivery guarantee. Messages can occasionally remain in |
Delivered | The DCA has confirmed the message was successfully handed off to the carrier and delivered to the recipient's phone. |
Failed | The message was not delivered, for one of the reasons in the error code tables above. It can fail before being sent to the DCA (no charge, since it was never sent), or fail further upstream at the DCA, carrier, or recipient's handset (charged, since it was processed upstream). |
Expired | The message was sitting in a carrier throughput or |
Only Failed and Expired mean the message did not reach the recipient. Queued, Sent, and Delivered are all normal, non-error states in a message's lifecycle.