If you are collecting phone numbers and the right to send text messages in a TCPA compliant way, you should expect delivery rates in the range of 90-97%. Even for the best content being sent to the most engaged customers all with valid mobile numbers, some percentage of SMS will not be delivered because of non-traditional carriers.
Regal publishes SMS error codes in our SMS events, so that you may track your delivery rates and make adjustments if you notice any of the following:
- your SMS delivery rate is outside of this expected range
- a large spike in undelivered or failed SMS
- a trend down in your SMS delivery rate.
When an SMS fails to deliver, Regal produces an sms.failed or sms.undelivered event which is sent to Journeys, Reporting Webhooks, Regal Reporting and other select destinations. See developer docs.
Within these events, there is a property that specifies an error_code. For example:
"error_code": "30034",
- An sms.failed event is triggered when Twilio (Regal's underlying SMS processor doesn't even attempt to send an SMS the customer's device).
- An sms.undelivered event is triggered when an SMS was sent, but the customer's carrier was not able to deliver the SMS to the customer's device.
The most common SMS error codes -- along with their descriptions and ways to remediate -- are:
Error Code | Description | What to Do |
30003 |
Unreachable destination handset (possibly because it's off, in airplane mode, or out of range) |
Attempt to resend once a day later |
30005 |
Unknown destination handset (likely number is invalid or no longer in service) |
Unsubscribe contact |
30006 |
Landline or unreachable carrier |
Unsubscribe contact from SMS |
30007 |
Message was filtered (possibly because it appeared to be spam, phishing, or fraud) |
Review content of your message. Fix any broken links. If no broken links, reach to support@regal.io to review your SMS and make suggestions. |
30008 |
A generic error occurred when delivering the message (carrier did not send a detailed error code) |
Attempt to resend once an hour later |
21408 |
Geo-Permissions failed |
If you don't want to serve more countries, unsubscribe contact. If you do want to serve more countries, reach out to support@regal.io to understand pricing and enable more countries. |
21610 |
Attempt to send to unsubscribed recipient |
Unsubscribe contact from SMS (if not already - your agent may have just not realized) |
30034 |
Attempt to send from an Unregistered number (meaning A2P "Application to Person" messaging registration has not been completed). |
Reach out to support@regal.io to complete A2P registration. |
60005 |
A downstream carrier error |
Attempt to resend once a day later |
30002, 30454, 63038, 90010 |
Account suspension or hit fraud detection limits |
Reach out to support@regal.io |