SMPP Error Codes
This table provides a detailed explanation of SMPP error codes, as defined in the SMPP specification. These codes indicate the outcome of an SMPP operation.
For the complete list of possible errors, please consult the SMPP specification:
Download: SMPP_v5.pdf
Command Status Name | Value (Hex) | Value (Decimal) | Description | Detailed Explanation |
---|---|---|---|---|
ESME_ROK | 0x00000000 | 0 | No error. | The operation completed successfully without any errors. |
ESME_RINVMSGLEN | 0x00000001 | 1 | `Message Length` is invalid. | The message length specified in the PDU is invalid. This could be due to the length being too short, too long, or not matching the actual message content. |
ESME_RINVCMDLEN | 0x00000002 | 2 | Command Length is invalid. | The command length specified in the PDU is invalid. The PDU length is considered invalid, either because the value is too short or too large for the given PDU. |
ESME_RINVCMDID | 0x00000003 | 3 | Invalid `Command ID`. | The Command ID specified in the PDU is not recognized or supported by the SMSC/MC. This indicates a mismatch in the expected command. |
ESME_RINVBNDSTS | 0x00000004 | 4 | Incorrect BIND Status for given command. | The PDU was sent in the wrong session state. For example, sending a `submit_sm` before establishing a `Bound_TX` session state. The ESME must bind to the SMSC before sending certain commands. |
ESME_RALYBND | 0x00000005 | 5 | ESME Already in Bound State. | A bind request was issued within a session that is already bound. The ESME is already connected and authenticated. |
ESME_RINVPRTFLG | 0x00000006 | 6 | Invalid `Priority Flag`. | The priority flag contains an illegal or unsupported value. The value provided for message priority is not within the accepted range. |
ESME_RINVREGDLVFLG | 0x00000007 | 7 | Invalid `Registered Delivery Flag`. | The registered delivery field contains an invalid setting. The value specified for delivery confirmation is not supported. |
ESME_RSYSERR | 0x00000008 | 8 | System Error. | MC system error indicating that all or part of the MC is currently unavailable. This can be returned in any response PDU. This indicates a problem on the SMSC/MC side. |
ESME_RINVSRCADR | 0x0000000A | 10 | Invalid `Source Address`. | The source address is invalid. This could be due to incorrect format, invalid characters, or a number that is not allowed by the SMSC. |
ESME_RINVDSTADR | 0x0000000B | 11 | Invalid `Destination Address`. | The destination address is invalid. This could be due to incorrect format, invalid characters, or a number that is not allowed by the SMSC. |
ESME_RINVMSGID | 0x0000000C | 12 | `Message ID` is invalid. | The message ID provided in a query or cancel operation is not valid or does not exist. |
ESME_RBINDFAIL | 0x0000000D | 13 | Bind Failed. | A generic failure scenario for a bind attempt. This may be due to a provisioning error, incorrect password, or other reason. A MC will typically return this error for an invalid `system_id`, `system_type`, `password` or other attribute that may cause a bind failure. |
ESME_RINVPASWD | 0x0000000E | 14 | Invalid `Password`. | The password field in the bind PDU is invalid. This is usually returned when the length is too short or too long. It is not supposed to be returned when the ESME has specified the incorrect password. |
ESME_RINVSYSID | 0x0000000F | 15 | Invalid `System ID`. | The System ID field in bind PDU is invalid. This is usually returned when the length is too short or too long. It is not supposed to be returned when the ESME has specified the incorrect system id. |
ESME_RCANCELFAIL | 0x00000011 | 17 | Cancel SM Failed. | Generic failure error for cancel_sm operation. The attempt to cancel a previously submitted message failed. |
ESME_RREPLACEFAIL | 0x00000013 | 19 | Replace SM Failed. | Generic failure for replace_sm operation. The attempt to replace a previously submitted message failed. |
ESME_RMSGQFUL | 0x00000014 | 20 | Message Queue Full. | Used to indicate a resource error within the MC. This may be interpreted as the maximum number of messages addressed to a single destination or a global maximum of undelivered messages within the MC. The SMSC/MC is unable to accept more messages due to queue limitations. |
ESME_RINVSERTYP | 0x00000015 | 21 | Invalid Service Type. | Service type is rejected either because it is not recognised by the MC or because its length is not within the defined range. The service type specified is not supported by the SMSC/MC. |
ESME_RINVNUMDESTS | 0x00000033 | 51 | Invalid number of destinations. | The `number_of_dests` field in the submit_multi PDU is invalid. The number of destinations specified in a multi-part message submission is invalid. |
ESME_RINVDLNAME | 0x00000034 | 52 | Invalid Distribution List name. | The `dl_name` field specified in the submit_multi PDU is either invalid or non-existent. The specified distribution list name is not valid or does not exist on the SMSC/MC. |
ESME_RINVDESTFLAG | 0x00000040 | 64 | Destination flag is invalid ( submit_multi). | The `dest_flag` field in the submit_multi PDU has been encoded with an invalid setting. The destination flag used in a multi-part message submission is invalid. |
ESME_RINVSUBREP | 0x00000042 | 66 | Submit w/replace functionality has been requested where it is either unsupported or inappropriate for the particular MC. | Submit w/replace functionality has been requested where it is either unsupported or inappropriate for the particular MC. This can typically occur with submit_multi where the context of “replace if present” is often a best effort operation and MCs may not support the feature in submit_multi. Another reason for returning this error would be where the feature has been denied to an ESME. |
ESME_RINVESMCLASS | 0x00000043 | 67 | Invalid `esm_class` field data. | The `esm_class` field has an unsupported setting. The Extended SM Class is invalid or unsupported. |
ESME_RCNTSUBDL | 0x00000044 | 68 | Cannot Submit to Distribution List. | Distribution lists are not supported, are denied or unavailable. The SMSC/MC does not support submission to distribution lists. |
ESME_RSUBMITFAIL | 0x00000045 | 69 | submit_sm, data_sm or submit_multi failed. | Generic failure. Generic failure error for submission operations. The message submission failed for an unspecified reason. |
ESME_RINVSRCTON | 0x00000048 | 72 | Invalid `Source address TON`. | The source TON of the message is either invalid or unsupported. The Type of Number for the source address is invalid. |
ESME_RINVSRCNPI | 0x00000049 | 73 | Invalid `Source address NPI`. | The source NPI of the message is either invalid or unsupported. The Numbering Plan Indicator for the source address is invalid. |
ESME_RINVDSTTON | 0x00000050 | 80 | Invalid `Destination address TON`. | The destination TON of the message is either invalid or unsupported. The Type of Number for the destination address is invalid. |
ESME_RINVDSTNPI | 0x00000051 | 81 | Invalid `Destination address NPI`. | The destination NPI of the message is either invalid or unsupported. The Numbering Plan Indicator for the destination address is invalid. |
ESME_RINVSYSTYP | 0x00000053 | 83 | Invalid `system_type` field. | The `System type` of bind PDU has an incorrect length or contains illegal characters. The system type specified during the bind operation is invalid. |
ESME_RINVREPFLAG | 0x00000054 | 84 | Invalid `replace_if_present` flag. | The `replace_if_present` flag has been encoded with an invalid or unsupported setting. The replace if present flag has an invalid value. |
ESME_RINVNUMMSGS | 0x00000055 | 85 | Invalid number of messages. | The number of messages specified is invalid. |
ESME_RTHROTTLED | 0x00000058 | 88 | Throttling error (ESME has exceeded allowed message limits). | This type of error is usually returned where an ESME has exceeded a predefined messaging rate restriction applied by the operator. The ESME has exceeded the allowed message submission rate. |
ESME_RINVSCHED | 0x00000061 | 97 | Invalid `Scheduled Delivery Time`. | The scheduled delivery time is invalid. The provided schedule time is not in the correct format or is outside the allowed range. |
ESME_RINVEXPIRY | 0x00000062 | 98 | Invalid message `validity period` (Expiry time). | The message validity period (expiry time) is invalid. The specified expiry time is not in the correct format or is outside the allowed range. |
ESME_RINVDFTMSGID | 0x00000063 | 99 | Predefined Message ID is Invalid or specified predefined message was not found. | The default (pre-defined) message id is either invalid or refers to a non-existent pre-defined message. The specified predefined message ID is invalid or not found. |
ESME_RX_T_APPN | 0x00000064 | 100 | ESME Receiver Temporary App Error Code. | RX or TRX ESME is unable to process a delivery due to a temporary problem and is requesting that the message be retried at some future point. |
ESME_RX_P_APPN | 0x00000065 | 101 | ESME Receiver Permanent App Error Code. | RX or TRX ESME is unable to process a delivery due to a permanent problem relating to the given destination address and is requesting that the message and all other messages queued to the same destination should NOT be retried any further. |
ESME_RX_R_APPN | 0x00000066 | 102 | ESME Receiver Reject Message Error Code. | RX or TRX ESME is unable to process a delivery due to a problem relating to the given message and is requesting that the message is rejected and not retried. This does not affect other messages queued for the same ESME or destination address. |
ESME_RQUERYFAIL | 0x00000067 | 103 | query_sm request failed. | Generic failure scenario for a query request. |
ESME_RINVTLVSTREAM | 0x000000C0 | 192 | Error in the optional part of the PDU Body. | Decoding of TLVs (Optional Parameters) has resulted in one of the following scenarios: |
ESME_RTLVNOTALLWD | 0x000000C1 | 193 | TLV not allowed. | A TLV has been used in an invalid context, either inappropriate or deliberately rejected by the operator. |
ESME_RINVTLVLEN | 0x000000C2 | 194 | Invalid Parameter Length. | A TLV has specified a length that is considered invalid. |
ESME_RMISSINGTLV | 0x000000C3 | 195 | Expected TLV missing. | A mandatory TLV such as the `message_payload` TLV within a data_sm PDU is missing. |
ESME_RINVTLVVAL | 0x000000C4 | 196 | Invalid TLV Value. | The data content of a TLV is invalid and cannot be decoded. |
ESME_RDELIVERYFAILURE | 0x000000FE | 254 | Transaction Delivery Failure. | A data_sm or submit_sm operation issued in transaction mode has resulted in a failed delivery. |
ESME_RUNKNOWNERR | 0x000000FF | 255 | Unknown Error. | Some unexpected error has occurred. A general error occurred for which a more specific error code is not available. |
ESME_RSERTYPUNAUTH | 0x00000100 | 256 | ESME Not authorised to use specified `service_type`. | Specific `service_type` has been denied for use by the given ESME. The ESME is not authorized to use the specified service type. |
ESME_RPROHIBITED | 0x00000101 | 257 | ESME Prohibited from using specified operation. | The PDU request was recognised but is denied to the ESME. The ESME is not allowed to perform the requested operation. |
ESME_RSERTYPUNAVAIL | 0x00000102 | 258 | Specified `service_type` is unavailable. | Due to a service outage within the MC, a service is unavailable. The requested service type is currently unavailable. |
ESME_RSERTYPDENIED | 0x00000103 | 259 | Specified `service_type` is denied. | Due to inappropriate message content wrt. the selected `service_type`. The requested service type is denied due to message content. |
ESME_RINVDCS | 0x00000104 | 260 | Invalid `Data Coding Scheme`. | Specified DCS is invalid or MC does not support it. The Data Coding Scheme is invalid or unsupported by the SMSC/MC. |
ESME_RINVSRCADDRSUBUNIT | 0x00000105 | 261 | Source Address Subunit is invalid. | The source address subunit is invalid. |
ESME_RINVDSTADDRSUBUNIT | 0x00000106 | 262 | Destination Address Subunit is invalid. | The destination address subunit is invalid. |
ESME_RINVBCASTFREQINT | 0x00000107 | 263 | Broadcast Frequency Interval is invalid. | Specified value is either invalid or not supported. |
ESME_RINVBCASTALIAS_NAME | 0x00000108 | 264 | Broadcast Alias Name is invalid. | Specified value has an incorrect length or contains invalid/unsupported characters. |
ESME_RINVBCASTAREAFMT | 0x00000109 | 265 | Broadcast Area Format is invalid. | Specified value violates protocol or is unsupported. |
ESME_RINVNUMBCAST_AREAS | 0x0000010A | 266 | Number of Broadcast Areas is invalid. | Specified value violates protocol or is unsupported. |
ESME_RINVBCASTCNTTYPE | 0x0000010B | 267 | Broadcast Content Type is invalid. | Specified value violates protocol or is unsupported. |
ESME_RINVBCASTMSGCLASS | 0x0000010C | 268 | Broadcast Message Class is invalid. | Specified value violates protocol or is unsupported. |
ESME_RBCASTFAIL | 0x0000010D | 269 | broadcast_sm operation failed. | The broadcast message submission failed. |
ESME_RBCASTQUERYFAIL | 0x0000010E | 270 | query_broadcast_sm operation failed. | The query broadcast message operation failed. |
ESME_RBCASTCANCELFAIL | 0x0000010F | 271 | cancel_broadcast_sm operation failed. | The cancel broadcast message operation failed. |
ESME_RINVBCAST_REP | 0x00000110 | 272 | Number of Repeated Broadcasts is invalid. | Specified value violates protocol or is unsupported. |
ESME_RINVBCASTSRVGRP | 0x00000111 | 273 | Broadcast Service Group is invalid. | Specified value violates protocol or is unsupported. |
ESME_RINVBCASTCHANIND | 0x00000112 | 274 | Broadcast Channel Indicator is invalid. | Specified value violates protocol or is unsupported. |
Reserved | 0x00000400-0x000004FF | 1024-1279 | Reserved for MC vendor specific errors. | This range of error codes is reserved for use by individual SMSC/MC vendors for their own specific error conditions. Consult the vendor's documentation for details. |