Plivo SMS error codes can be used to identify the reason for message delivery failures.
This Error Code is part of the Message Detail Record (MDR). It is also included in the status update events sent to the callback
url specified in the Send Message API request.
List of Error Codes
|10||Invalid message||Plivo runs basic validations on the message content when a send message API request is received, however, some messages may still 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 at a later time 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 that detect spam content and then block them before they even get delivered. Unfortunately, these filters are always hidden, 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 US & Canada. Long codes are 10-digit phone numbers and are intended for person-to-person (P2P) communication. | If this issue persists, we highly recommend using short codes for sending bulk messages within US and Canada. Visit our short code page to learn more 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 is 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 is 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 are corresponding to an endless loop of messages being sent and received between your “src” and “dst” phone numbers. This can occur when two auto-responding SMS applications start to talk to each other and end up in a loop. Carriers detect loops by comparing messages within a predefined period of time to previous messages sent and received. SMS loops can increase unnecessary spend, so to ensure that your applications do not trigger loops, it’s a good idea to create loop filters in your application because not all carriers have loop detection. In some cases, this error code is returned when the carrier determines that it is impossible to route the SMS and the message has to be dropped as it is being looped between platforms.|
|70||Destination Permanently Unavailable||The destination (i.e., “dst”) phone number is not active and there is no indication of when it will become available again. Note that this is a broad error code where the carrier has not indicated the reason for the destination unavailability. Check the “dst” phone number to ensure that it is 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 (i.e., “dst”) phone number is not reachable. Note that this is a broad error code and often times, the carrier does not indicate the reason for the destination to be temporarily unavailable. Though, possible reasons could be due to the handset being turned off or out of coverage. To resolve this, retry your messages at a later time.|
|90||No route available||The carrier and fallback carriers were not able to deliver the SMS message because the route was not available. Please note that carriers do not offer the reason for why the route is unavailable, but since this is typically a carrier issue, please contact us and include the message UUIDs of the SMS affected.|
|100||Prohibited by Carrier||The carrier rejected the text message because the network did not support the message being sent. This could occur if the destination network does not support SMS.|
|110||Message too long||The message content exceeds the character limit of 1600 for GSM and 737 for UTF encoded messages. Note that depending on the byte size, Emoji characters can also increase the message character count significantly. Also, Plivo automatically concatenates messages longer than 160 characters for GSM encoded messages and 70 characters for UTF encoded messages. Check our FAQ on long message concatenation for more details.|
|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. Opt-outs are typically received via text message replies with a opt-out keyword including “STOP”. All messages to destinations that have opted out will be blocked until the destination opts in with another response. Check our FAQ to learn more about opt-out and opt-in processes.|
|300||Failed to dispatch Message||An error was encountered while passing on the message to downstream carriers. This is an internal failure, and 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’re seeing this error consistently.|
|420||Message Expired||Messages that remain in Plivo processing queues for longer than 16 hours are not forwarded to the downstream carrier. If you are consistently receiving this error for your outbound SMS traffic to US and Canada, consider spreading your traffic across a larger pool of source numbers. Reach out to your Plivo sales representative to know more about the global rate limit for your Plivo account.|
|450||Destination Country Disabled||Messages to this Destination country have been disabled for your account. To enable them, Please update your Geo-Permission preferences on Console.|
|900||Insufficient Credit||Your account does not have the required amount of credits to send this message. Recharge your account and try again.|
|910||Account Disabled||The SMS was rejected because the parent Plivo account was found to be in disabled state when the SMS was dequeued for processing.|
|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 with us so that we can help you identify the problem. Be sure to include the message UUIDs of recent messages (preferably within the last 72 hours) that have been 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.|
Note that Plivo attempts to deliver the incoming message to the associated application's message_url multiple times before marking the message as undelivered. Read more about our retry policy here.
|120||MMS Message Payload Too Large||The total size of the MMS payload (text + media) exceeds the 5MB limit.|
Messages exceeding the 5MB limit are not submitted to downstream carriers and are marked as ‘failed’. Plivo does not charge for ‘failed’ messages.
|130||Unsupported Message Media||One or more of the attached MMS media is of an unsupported type.|
Messages containing unsupported media are not submitted to downstream carriers and are marked as ‘failed’. Plivo does not 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 does not charge for ‘failed’ messages.|