You can use Plivo SMS error codes to identify reasons for message delivery failures. These error codes are part of the Message Detail Record (MDR), and also included in status update events sent to the callback url
specified in the Send Message API request.
Error Code | Reason | Description |
10 | Invalid Message | Plivo runs basic validations on the message content when a send message API request is received, but some messages may be rejected by downstream carriers. This error code indicates that the message was rejected by downstream carriers with the reason “invalid message.” Please contact Plivo support if you encounter this error frequently. |
20 | Network Error | The carrier delivering the text message had network issues. This is a temporary error. You can retry later when the carrier network is unaffected. |
30 | Spam Detected | One of the most common reasons for SMS delivery failure is carrier-level spam filters. Carriers have added systems and algorithms to detect spam content and block messages before they get delivered. Unfortunately, these filters are always hidden, are subject to carrier preferences, vary from carrier to carrier, and can be changed without notice. Another common reason why this error code could be returned is that you may have attempted to send too many messages using long code phone numbers in the US and Canada. Long codes are 10-digit phone numbers and are intended for person-to-person (P2P) communication. If you get this error frequently, we recommend you use short codes for sending bulk messages within the US and Canada. Visit our short code page to learn about obtaining and setting up a short code for your campaign. |
40 | Invalid Source Number | The source number you entered is either not in the correct format, not SMS-enabled, or not assigned to your Plivo account. Check the “src” phone number in your application and ensure that it’s in the correct format and has the ability to send text messages. |
50 | Invalid Destination Number | The destination number you entered is either not entered correctly, not SMS-enabled, or is a PSTN landline. Check the “dst” phone number in your application to ensure that it’s able to receive text messages. If you’re sending multiple text messages, make sure that the phone numbers are separated with the “<” character (e.g., 14156667777<14157778888<14158889999). |
60 | Loop Detected | The carrier is not able to route your SMS because certain settings in your application create an endless loop of messages being sent and received between your “src” and “dst” phone numbers. This can occur when two autoresponding SMS applications start to talk to each other. Carriers detect loops by comparing messages sent and received within a predefined period of time to previous messages, though not all carriers have loop detection. SMS loops increase unnecessary spend, so to ensure that your applications don’t trigger loops, it’s a good idea to create loop filters in your applications. In some cases, this error code is returned when the carrier determines that it’s impossible to route the message, so it has to be dropped as it’s being looped between platforms. |
70 | Destination Permanently Unavailable | The destination (“dst”) phone number is not active and there is no indication of when it will become available again. This is a broad error code that’s generated when the carrier hasn’t indicated the reason for the destination unavailability. Check the “dst” phone number to ensure that it’s correct. Also, try sending messages to an alternative number to ensure that all other parts of your application are working. |
80 | Destination Temporarily Unavailable | The destination (“dst”) phone number is not reachable. This is a broad error code, and often the carrier doesn’t indicate the reason for the destination to be temporarily unavailable. Possible reasons may include a handset being turned off or out of coverage. To resolve this problem, retry your messages later. |
90 | No Route Available | The carrier and fallback carriers were not able to deliver the SMS message because no route was available. Carriers don’t provide a reason why a route is unavailable, but this is typically a carrier issue. To get more information, you can contact us and include the message UUIDs of the messages affected. |
100 | Prohibited by Carrier | The carrier rejected the message because the network didn’t support the message being sent. This can occur if the destination network doesn’t support SMS. |
110 | Message Too Long | The message content exceeds the limit of 1,600 characters for GSM-encoded messages and 737 for UCS-2-encoded messages. Note that depending on the byte size, emoji characters can also increase the message character count. Plivo automatically concatenates messages longer than 160 characters for GSM-encoded messages and 70 characters for UCS-2-encoded messages. Our documentation on encoding and concatenation has more details. |
150 | Recipient Registered for India DND | The message was rejected because the end user is registered under the DND (Do Not Disturb) registry in India. |
160 | DLT Registration Issue | This message was rejected because of an issue in DLT registration. Ensure you’re using only DLT-registered headers and templates. Contact Plivo support if you continue facing this issue. |
200 | Source Number Blocked by STOP from Destination Number | The destination has opted out from your campaign and blocked all messages sent from your phone number. All messages to destinations that have opted out are blocked until the destination opts in with another response. Our documentation has more details about the opt-in and opt-out processes. |
300 | Failed to Dispatch Message | An error was encountered while passing the message to downstream carriers. This is an internal failure; messages with this error code can be retried at a later time. Customers are not charged for messages that fail with this error code. Please raise a support ticket if you see this error consistently. |
310 | WhatsApp phone number registration error | The phone number from which you are trying to send the Whatsapp message is either not registered or previous deregistration attempt has failed. Confirm the status of your phone number in Facebook WhatsApp Manager and try again. |
320 | WhatsApp phone number verification error | Verify the phone number before registering it. If you are in middle of verification, follow the instructions carefully. |
330 | Unsupported WhatsApp message type | This WhatsApp message type is not yet supported by Plivo |
340 | Template status error | Verify your template status and quality rating. Make sure your template has been approved and the template name and language locale are correct. Make sure translated text is not too long. Please ensure you follow message template guidelines. |
350 | Template parameter errors | Verify the variable parameter values you are passing is as per the template and is formatted correctly. |
360 | WhatsApp business account disabled | The message was rejected because the WABA was found to be in a locked or temporarily disabled state when the message was dequeued for processing. You can view the WABA account status in Plivo Console. |
370 | WhatsApp Throttling Errors | Too many requests originated from your WABA account. Either the WABA might have reached the rate limit or Cloud API messaging throughput has been breached or there might be restrictions on your phone number or your might have sent a large number of messages to the same destination number in a short time span. Visit your WhatsApp Business Account in Plivo console and review your account status. |
420 | Message Expired | Messages that remain in Plivo processing queues for longer than three hours are not forwarded to a downstream carrier. If you consistently receive this error for your outbound SMS traffic to the US, ensure that you’ve linked your numbers to 10DLC campaigns. If the issue persists, contact our support team. |
450 | Destination Country Disabled | Messages to this destination country have been disabled for your account. To enable them, update your Geo Permission preferences on the console. |
451 | Unusual Activity | The number of messages sent from your account exceeded the hourly threshold set. For additional information on this error type, contact our support team. |
900 | Insufficient Credit | Your account does not have the required credits to send this message. Recharge your account and try again. |
910 | Account Disabled | The message was rejected because the parent Plivo account was found to be in a disabled state when the message was dequeued for processing. |
950 | Daily Messaging Limit Reached for Your 10DLC Brand | T-Mobile (including Sprint and Metro by T-Mobile) has a limit on the total daily messages (TPD) a brand can send toward its subscribers. T-Mobile's TPD limit takes into account both SMS and MMS messages; in other words, the daily limit is shared across SMS and MMS services. This error means you have reached the allotted limit for your brand and all the subsequent messages to T-Mobile (including Sprint and Metro by T-Mobile) will continue to fail for the day. The counter resets each day at midnight Pacific Time, after which you can restart messaging. You can access your brand’s allotted TPD from the 10DLC page of the Plivo console. Read more about T-Mobile TPD limits in a document on our support portal. |
960 | Limit Reached or Messages Caught by Spam Filter on Unverified or Pending Verification Toll-Free Number | Messaging in the US or Canada using toll-free numbers is subject to verification. Unverified numbers have daily, weekly, and monthly limits on the number of messages they can send. This error means you have exceeded those limits and must consider verifying your toll-free number. If your number is already submitted for verification and you see this error, your messages were caught by carrier messaging filters. To initiate a verification request for a single Plivo toll-free number, fill out the Plivo Toll-Free Verification form. Follow the instructions to avoid having your verification request rejected. Plivo will submit the information you provide to the carriers. |
1000 | Unknown Error | Delivering your message failed for reasons that are unknown to us and to our carriers. If you notice too many of these cases, please open a support ticket so we can help you identify the problem. Include the message UUIDs of recent messages (preferably within the last 72 hours) that were affected. |
2xxx | HTTP Error Received From Message URL For Incoming SMS | The xxx part of the error code represents the HTTP error response received from the message_url for an undelivered incoming SMS message. Plivo attempts to deliver an incoming message to the associated application’s message_url multiple times before marking the message as undelivered. Read more about our retry policy. |
120 | MMS Message Payload Too Large | The total size of the MMS payload (text plus media) exceeds the 5MB limit. Messages exceeding the 5MB limit are not submitted to downstream carriers and are marked as “failed.” Plivo doesn’t charge for failed messages. |
130 | Unsupported Message Media | One or more of the attached MMS media is of an unsupported type. See our list of supported types. Messages containing unsupported media are not submitted to downstream carriers and are marked as “failed.” Plivo doesn’t charge for failed messages. |
140 | Message Media Processing Failed | The specified media attachments could not be processed. This may happen if the media URL specified is unreachable or file data is incorrectly formatted. Plivo doesn’t charge for failed messages. |