SMPP error codes are typically shown as a four-byte hexadecimal value. Only the last two bytes of this value are used to indicate different error situations. The following table displays the error number, the error name specified by the SMPP protocol, the corresponding error message and error description.
Error Number in Hexadecimal | Error Number in Decimal | Error Name | Error Description |
---|---|---|---|
0x00000000 | 0 | ESME_ROK | No Error |
0x00000001 | 1 | ESME_RINVMSGLEN | Message Length is invalid. |
0x00000002 | 2 | ESME_RINVCMDLEN | Command Length is invalid. PDU length is considered invalid, either because the value is too short or too large for the given PDU. |
0x00000003 | 3 | ESME_RINVCMDID | Invalid Command ID. |
0x00000004 | 4 | ESME_RINVBNDSTS | Incorrect BIND Status for given command. PDU has been sent in the wrong session state. E.g., sending a submits without first establishing a Bound TX session state. |
0x00000005 | 5 | ESME_RALYBND | ESME is Already in Bound State. A bind request has been issued within a session that is already bound. |
0x00000006 | 6 | ESME_RINVPRTFLG | Invalid Priority Flag. Priority flag contains an illegal or unsupported value. |
0x00000007 | 7 | ESME_RINVREGDLVFLG | Invalid Registered Delivery Flag. Registered field contains an invalid setting. |
0x00000008 | 8 | ESME_RSYSERR | System Error. |
0x00000009 | 9 | Reserved | |
0x0000000A | 10 | ESME_RINVSRCADR | Invalid source address |
0x0000000B | 11 | ESME_RINVDSTADR | Invalid destination address |
0x0000000C | 12 | ESME_RINVMSGID | Message ID is invalid |
0x0000000D | 13 | ESME_RBINDFAIL | 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. |
0x0000000E | 14 | ESME_RINVPASWD | Invalid Password. The password 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 password. |
0x0000000F | 15 | ESME_RINVSYSID | 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. |
0x00000010 | 16 | Reserved | |
0x00000011 | 17 | ESME_RCANCELFAIL | Cancel SM Failed. Generic failure error for cancel_sm operation. |
0x00000012 | 18 | Reserved | |
0x00000013 | 19 | ESME_RREPLACEFAIL | Replace SM Failed. Generic failure for replace_sm operation. |
0x00000014 | 20 | ESME_RMSSQFUL | 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. |
0x00000015 | 21 | ESME_RINVSERTYP | Invalid Service Type. Service type is rejected either because it is not recognized by the MC or because its length is not within the defined range. |
0x00000033 | 51 | ESME_RINVNUMDESTS | Invalid number of destinations. The number_of_dests field in the submit_multi PDU is invalid. |
0x00000034 | 52 | ESME_RINVDLNAME | Invalid Distribution List name. The dl_name field specified in the submit_multi PDU is either invalid, or non-existent. |
0x00000040 | 64 | ESME_RINVDESTFLAG | Destination flag is invalid (submit_multi). The dest_flag field in the submit_multi PDU has been encoded with an invalid setting. |
0x00000041 | 65 | Reserved | |
0x00000042 | 66 | ESME_RINVSUBREP | 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. |
0x00000043 | 67 | ESME_RINVESMCLASS | Invalid esm_class field data. The esm_class field has an unsupported setting. |
0x00000044 | 68 | ESME_RCNTSUBDL | Cannot Submit to Distribution List. Distribution lists are not supported, are denied or unavailable. |
0x00000045 | 69 | ESME_RSUBMITFAIL | submit_sm, data_sm or submit_multi failed. Generic failure. Generic failure error for submission operations. |
0x00000046 | 70 | Reserved | |
0x00000047 | 71 | Reserved | |
0x00000048 | 72 | ESME_RINVSRCTON | Invalid Source address TON. The source TON of the message is either invalid or unsupported. |
0x00000049 | 73 | ESME_RINVSRCNPI | Invalid Source address NPI. The source NPI of the message is either invalid or unsupported. |
0x00000050 | 80 | ESME_RINVDSTTON | Invalid Destination address TON. The destination TON of the message is either invalid or unsupported. |
0x00000051 | 81 | ESME_RINVDSTNPI | Invalid Destination address NPI. The destination NPI of the message is either invalid or unsupported. |
0x00000052 | 82 | Reserved | |
0x00000053 | 83 | ESME_RINVSYSTYP | Invalid system_type field. The System type of bind PDU has an incorrect length or contains illegal characters. |
0x00000054 | 84 | ESME_RINVREPFLAG | Invalid replace_if_present flag. The replace_if_present flag has been encoded with an invalid or unsupported setting. |
0x00000055 | 85 | ESME_RINVNUMMSGS | Invalid number of messages |
0x00000056 | 86 | Reserved | |
0x00000057 | 87 | Reserved | |
0x00000058 | 88 | ESME_RTHROTTLED | 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. |
0x00000059 | 89 | Reserved | |
0x00000060 | 96 | Reserved | |
0x00000061 | 97 | ESME_RINVSCHED | Invalid scheduled delivery time |
0x00000062 | 98 | ESME_RINVEXPIRY | Invalid Validity Period value (Expiry time). |
0x00000063 | 99 | ESME_RINVDFTMSGID | 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. |
0x00000064 | 100 | ESME_RX_T_APPN | 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. |
0x00000065 | 101 | ESME_RX_P_APPN | 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. |
0x00000066 | 102 | ESME_RX_R_APPN | 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. |
0x00000067 | 103 | ESME_RQUERYFAIL | query_sm request failed. Generic failure scenario for a query request. |
0x00000068-0x000000BF | 104 -191 | Reserved | |
0x000000C0 | 192 | ESME_RINVTLVSTREAM | Error in the optional part of the PDU Body. Decoding of TLVs (Optional Parameters) has resulted in one of the following scenarios: PDU decoding is completed with 1-3 octets of data remaining, indicating a corrupt PDU. A TLV indicated a length that was not present in the remaining PDU data (e.g., a TLV specifying a length of 10 where only 6 octets of PDU data remain). |
0x000000C1 | 193 | ESME_RTLVNOTALLWD | A TLV has been used in an invalid context, either inappropriate or deliberately rejected by the operator. |
0x000000C2 | 194 | ESME_RINVTLVLEN | Invalid Parameter Length. A TLV has specified a length that is considered invalid. |
0x000000C3 | 195 | ESME_RMISSINGTLV | Expected TLV missing. A mandatory TLV such as the message_payload TLV within a data_sm PDU is missing. |
0x000000C4 | 196 | ESME_RINVTLVVAL | Invalid TLV value. The data content of a TLV is invalid and cannot be decoded. |
0x000000C5-0x000000FD | 197 -253 | Reserved | |
0x000000FE | 254 | ESME_RDELIVERYFAILURE | Transaction delivery failure. A data_sm or submit_sm operation issued in transaction mode has resulted in a failed delivery. |
0x000000FF | 255 | ESME_RUNKNOWNERR | Unknown error. Some unexpected error has occurred. |
0x00000100 | 256 | ESME_RSERTYPUNAUTH | ESME Not authorised to use specified service_type. Specific service_type has been denied for use by the given ESME. |
0x00000101 | 257 | ESME_RPROHIBITED | ESME Prohibited from using specified operation. The PDU request was recognised but is denied to the ESME. |
0x00000102 | 258 | ESME_RSERTYPUNAVAIL | Specified service_type is unavailable. Due to a service outage within the MC, a service is unavailable. |
0x00000103 | 259 | ESME_RSERTYPDENIED | Specified service_type is denied. Due to inappropriate message content wrt. the selected service_type. |
0x00000104 | 260 | ESME_RINVDCS | Invalid Data Coding Scheme. Specified DCS is invalid or MC does not support it. |
0x00000105 | 261 | ESME_RINVSRCADDRSUBUNIT | Source Address Subunit is invalid. |
0x00000106 | 262 | ESME_RINVSTDADDRSUBUNIR | Destination Address Subunit is invalid. |
0x00000400- | 1024 – | Operator specific error codes | |
0x00000107 | 263 | ESME_RINVBCASTFREQINT | Broadcast Frequency Interval is invalid. Specified value is either invalid or not supported. |
0x00000108 | 264 | ESME_RINVBCASTALIAS_NAME | Broadcast Alias Name is invalid. Specified value has an incorrect length or contains invalid/unsupported characters. |
0x00000109 | 265 | ESME_RINVBCASTAREAFMT | Broadcast Area Format is invalid. Specified value violates protocol or is unsupported. |
0x0000010A | 266 | ESME_RINVNUMBCAST_AREAS | Number of Broadcast Areas is invalid. Specified value violates protocol or is unsupported. |
0x0000010B | 267 | ESME_RINVBCASTCNTTYPE | Broadcast Content Type is invalid. Specified value violates protocol or is unsupported. |
0x0000010C | 268 | ESME_RINVBCASTMSGCLASS | Broadcast Message Class is invalid. Specified value violates protocol or is unsupported. |
0x0000010D | 269 | ESME_RBCASTFAIL | broadcast_sm operation failed. |
0x0000010E | 270 | ESME_RBCASTQUERYFAIL | query_broadcast_sm operation failed. |
0x0000010F | 271 | ESME_RBCASTCANCELFAIL | cancel_broadcast_sm operation failed. |
0x00000110 | 272 | ESME_RINVBCAST_REP | Number of Repeated Broadcasts is invalid. Specified value violates protocol or is unsupported. |
0x00000111 | 273 | ESME_RINVBCASTSRVGRP | Broadcast Service Group is invalid. Specified value violates protocol or is unsupported. |
0x00000112 | 274 | ESME_RINVBCASTCHANIND | Broadcast Channel Indicator is invalid. Specified value violates protocol or is unsupported. |
0x00000400- 0x000004FF | 1024-1279 | Reserved | Reserved for MC vendor specific errors. |
This detailed table will help you understand SMPP error codes.