Handling High Volume SMS Errors
High Volume SMS provides detailed error codes for reasons why a SMS may have failed sending or delivery which can be used to determine how to adjust your campaigns.
Error Code Structure
Error codes are composed of a prefix and a number. The prefix identifies the error reporting party and the numeric code is aligned with HTTP response status codes. In the following error code,
SMS-CAR- is the prefix and
411 is the numeric code.
Error Reporting Party Prefix
For SMS, there are 3 parties that can return an error:
|Error Code Prefix
|RingCentral's own error checking.
|This is the upstream sending carrier.
|This is the recipient's wireless provider.
Error / Status Numbers
The numerical portion of the error follows a subset of HTTP status conventions:
- Informational responses (100–199)
- Client errors (400–499)
- Server errors (500–599)
Commonly encountered errors fall into categories:
- Sending to invalid numbers such as landline numbers or other numbers that cannot support texting.
- Being rejected as spam.
When you receive an error that indicates a number is invalid or unavailable (e.g.
SMS-UP-413), you should make a note of it and consider stopping messages to that number. You can also ask your user to confirm the validity of their number (via SMS) before resuming messages.
A common reason for this is texting to landline numbers that do not have texting capability. An API service like NumVerify can be used to check whether a number is a landline number (without texting capability) or a mobile number (likely with texting capability).
If are receiving a lot of spam rejections, your users may be indicating this is spam or the carrier may be using spam detection algorithms. In this case, you should consider changing your message so it is not recognized as spam. After you change your message, you may want to consider provisioning a new phone number with the updated messages as your existing number may be blacklisted.
Different recipient wireless carriers will have different spam policies so it may be worthwhile to check errors against recipient carrier. An API service like NumVerify can also be used to identify the recipient's wireless carrier.
Some information is provided for informational purposes and while it may be classified as an error, may be expected from carriers. For example, it may not possible to get delivery status from carriers as reported by
SMS-CAR-199. When checking for delivery success and failure, you may want to verify receipt of the SMS message before classifying these as non-delivered.s
Error Code List
|Destination number is invalid, unallocated, or does not support this kind of messaging.
|This message has been filtered and blocked by a upstream carrier for spam.
|From number is blacklisted due to spam or other violations.
|General upstream error. Upstream is malfunctioning.
|Carrier has not reported delivery status.
|Carrier reports unknown message status.
|Carrier does not support this kind of messaging.
|Destination number invalid, unallocated, or does not support this kind of messaging.
|Destination subscriber unavailable.
|Destination subscriber opted out.
|This message has been filtered and blocked by a recipient's carrier for spam.
|Message rejected by carrier with no specific reason.
|Message too long.
|Message is malformed for the carrier.
|P2P messaging volume violation. Please contact RingCentral support to review your account settings and ensure you are utilizing the appropriate A2P provisioning for high volume traffic
|Destination rejected short code messaging. Currently not applicable for RingCentral.
|Carrier reports general service failure.
|Destination number unsupported.
|Destination subscriber opted out.
|This message has been filtered and blocked by a RingCentral's message filtering system for spam.
|General/Unknown internal RC error.
|RingCentral is sending an invalid upstream API call. Please raise a support ticket with RingCentral developer support.
|RingCentral provisioning error. Phone number is incorrectly provisioned by RingCentral in upstream.