Skip to content

SMPP Error Codes: Full List and What They Mean

SMPP error codes explained: common SMPP 3.4 command_status values such as 0x0B, 0x45 and 0x58, their causes, and which to retry or treat as permanent.

Updated 20 October 2026

SMPP error codes are the command_status values a supplier returns in responses such as submit_sm_resp. 0x00000000 (ESME_ROK) means accepted; anything else is an error, for example 0x0B invalid destination address, 0x14 queue full or 0x58 throttled. Some errors are temporary and worth retrying, others are permanent and should not be retried.

Where the codes appear

Every SMPP response PDU carries a command_status field. When you send submit_sm, the supplier answers with submit_sm_resp: status 0 plus a message ID means the message was accepted for delivery, a non-zero status means it was rejected at submission. These codes are different from the err field in delivery reports, which comes later and describes what happened on the network. For those, see SMS delivery report statuses.

Most common codes (SMPP 3.4)

CodeNameMeaningRetry?
0x00ESME_ROKNo errorNo need
0x01ESME_RINVMSGLENInvalid message lengthNo, fix the message
0x02ESME_RINVCMDLENInvalid command lengthNo, fix the client
0x04ESME_RINVBNDSTSIncorrect bind status for this command (for example submitting on a receiver bind)No, fix the bind
0x05ESME_RALYBNDAlready boundNo
0x08ESME_RSYSERRSystem error at the supplierYes, later
0x0AESME_RINVSRCADRInvalid source address (sender ID)No
0x0BESME_RINVDSTADRInvalid destination addressNo
0x0DESME_RBINDFAILBind failedAfter checking credentials and limits
0x0EESME_RINVPASWDInvalid passwordNo
0x0FESME_RINVSYSIDInvalid system IDNo
0x14ESME_RMSGQFULMessage queue fullYes, with back-off
0x45ESME_RSUBMITFAILsubmit_sm failed (generic)Depends, ask the supplier
0x48 / 0x49ESME_RINVSRCTON / NPIInvalid source TON or NPINo, fix the address settings
0x50 / 0x51ESME_RINVDSTTON / NPIInvalid destination TON or NPINo, fix the address settings
0x58ESME_RTHROTTLEDThrottling error, too many messages per secondYes, slow down
0x61ESME_RINVSCHEDInvalid scheduled delivery timeNo
0x62ESME_RINVEXPIRYInvalid validity periodNo
0x64ESME_RX_T_APPNTemporary error from the receiving applicationYes
0x65ESME_RX_P_APPNPermanent error from the receiving applicationNo
0x66ESME_RX_R_APPNMessage rejected by the receiving applicationNo
0xFFESME_RUNKNOWNERRUnknown errorInvestigate

Codes 0x0400 to 0x04FF are reserved for vendor-specific errors. Many suppliers use them for business rules such as "no credit", "destination not allowed", "sender ID not registered" or "content blocked". Ask every supplier for its own table.

Typical causes and fixes

  • Invalid destination (0x0B): number not in international format, a leading zero or plus sign where the supplier does not expect it, or a country not enabled on your account. Send numbers as E.164 digits and check the TON/NPI settings (usually TON 1, NPI 1 for international numbers).
  • Invalid source (0x0A): alphanumeric sender longer than 11 characters, wrong TON for an alphanumeric sender (usually TON 5), or a sender ID not allowed or not registered on that route. See SMS sender ID types.
  • Invalid message length (0x01): text too long for one PDU, often a long message sent without proper splitting. See long concatenated SMS.
  • Throttled (0x58) and queue full (0x14): you are above your TPS or the supplier is congested. See SMPP binds and TPS.
  • Bind failures (0x0D, 0x0E, 0x0F): wrong credentials, IP not whitelisted, or more binds than allowed.

Building a retry policy

  1. Classify each code, including vendor codes, as temporary or permanent.
  2. Retry temporary errors with increasing delays (for example 1, 5, 30 seconds), and stop after a few attempts.
  3. For OTP, failing over to a second route is usually better than waiting. See OTP SMS best practices.
  4. Never retry permanent errors in a loop: it wastes throughput and can get your account flagged.
  5. Log the code per destination and per supplier so you can spot new rejections fast.

Getting help with a route

A sudden rise in one error code often means a configuration or rule change on the supplier side. When VoIPMatcher manages your A2P SMS routes, we deal with the supplier for you. Request an SMPP route.

Frequently asked questions

What is SMPP error code 69?

Error 69 is 0x45 in hexadecimal, ESME_RSUBMITFAIL: the submit_sm failed for a reason the code itself does not specify. Some platforms use it for business rules such as missing credit or a destination not enabled. Whether to retry depends on the cause, so ask the supplier what triggers it on their side.

What is SMPP error code 88?

Error 88 is 0x58 in hexadecimal, ESME_RTHROTTLED: you are sending more messages per second than your account or bind allows. It is temporary. Slow down and retry with increasing delays rather than at once, and check whether the TPS limit applies per bind or to the whole account.

What is SMPP error code 11?

Error 11 is 0x0B, ESME_RINVDSTADR: invalid destination address. The number is usually in the wrong format, with a leading zero or plus sign the supplier does not expect, or the country is not enabled on your account. Send numbers as international E.164 digits with TON 1 and NPI 1, and do not retry unchanged.

What is SMPP error code 13?

Error 13 is 0x0D, ESME_RBINDFAIL: the bind request was refused. Common causes are wrong credentials, an IP address not whitelisted by the supplier or more simultaneous binds than allowed. Check the system_id, password and source IP, close old sessions and confirm the bind limit before trying again.

What is SMPP error code 255?

Error 255 is 0xFF, ESME_RUNKNOWNERR: an unknown error. The supplier's platform could not map the failure to a standard code. Do not retry in a loop. Log the destination, sender ID and time, and send examples to the supplier, who can check its own logs and upstream connection.

Need a route?

Send the destination, route type and target rate. We reply with what we can deliver.

More guides

All guides
A2P SMS MCC MNC List: Mobile Country and Network Codes What MCC and MNC codes are, examples from the MCC MNC list, how they identify mobile networks and how SMS providers use them for pricing and routing. A2P SMS OTP Fallback: SMS, Voice OTP and WhatsApp How to design OTP fallback across SMS, voice OTP calls and WhatsApp: what voice OTP is, channel strengths, timing, flow design and fraud protection. A2P SMS Concatenated SMS: How Long Messages Are Split How concatenated SMS works: long messages split into 153 or 67 character segments, UDH and SMPP options, maximum length, billing and delivery reports. A2P SMS SMS Character Limit: GSM-7 vs Unicode Explained The SMS character limit explained: 160 GSM-7 or 70 Unicode characters, what triggers Unicode, extension characters and how long messages are counted. A2P SMS Direct SMS Routes: What They Are and How to Verify What a direct SMS route is, why it delivers better than indirect or grey routes, when OTP traffic needs one and how to verify a supplier's direct claim. A2P SMS Flash Call Verification: How It Works vs SMS How flash call verification works, how it compares with SMS OTP, and the operator, fraud and platform risks to weigh before using it. A2P SMS Best SMS Gateway for OTP: How to Choose Checklist to choose an SMS gateway or OTP SMS provider: speed, route quality, real delivery reports, sender ID, fraud protection and cost per verification. A2P SMS SMS Aggregator: What It Is and How A2P Works What an SMS aggregator does, tier 1 vs tier 2 aggregators, how aggregators differ from CPaaS platforms and operators, and what to check before choosing.