ESME_RDELIVERYFAILURE in SMPP

What is ESME_RDELIVERYFAILURE?

ESME_RDELIVERYFAILURE (Error Code: 0x000000FE) is an SMPP error indicating that message delivery to the recipient has failed.

Possible Causes

  • The destination number is invalid or unreachable.
  • The mobile handset is switched off or out of network coverage.
  • The SMSC encountered an issue while routing the message.
  • Carrier-side restrictions (e.g., blocked numbers, DND lists, or spam filters).
  • Message expiration before delivery.

When Does It Happen?

This error occurs when an ESME submits a message and the SMSC is unable to deliver it due to network issues, recipient unavailability, or other delivery failures.

Example SMPP PDU Transaction

Request PDU (submit_sm) Sent by ESME

0000003C (Length)
00000004 (Command ID for submit_sm)
00000000 (Command Status)
00000001 (Sequence Number)
00 (Service Type)
01 (Source Address TON - International)
01 (Source Address NPI - ISDN)
31323334 00 (Source Address: "1234")
01 (Destination Address TON - International)
01 (Destination Address NPI - ISDN)
39383736 00 (Destination Address: "9876")
00 (ESM Class)
00 (Protocol ID)
00 (Priority Flag)
00000000 (Schedule Delivery Time - Not Set)
00000000 (Validity Period - Not Set)
00 (Replace If Present Flag)
00 (Sm Default Msg ID)
0005 (Message Length)
48656C6C 6F (Message: "Hello")

Response PDU (submit_sm_resp) with Message ID

00000010 (Length)
80000004 (Command ID for submit_sm_resp)
00000000 (Command Status - Success)
00000001 (Sequence Number)
3132333435363738 (Message ID: "12345678")

Delivery Report PDU (deliver_sm) Indicating Failure

00000034 (Length)
00000005 (Command ID for deliver_sm)
00000000 (Command Status)
00000002 (Sequence Number)
00 (Service Type)
01 (Source Address TON - International)
01 (Source Address NPI - ISDN)
39383736 00 (Source Address: "9876")
01 (Destination Address TON - International)
01 (Destination Address NPI - ISDN)
31323334 00 (Destination Address: "1234")
00 (ESM Class)
00 (Protocol ID)
00 (Priority Flag)
00000000 (Schedule Delivery Time - Not Set)
00000000 (Validity Period - Not Set)
00 (Replace If Present Flag)
00 (Sm Default Msg ID)
001E (Message Length)
64656C69 76657279 20666169 6C757265 (Message: "delivery failure")

Response PDU (deliver_sm_resp) with ESME_RDELIVERYFAILURE

00000010 (Length)
80000005 (Command ID for deliver_sm_resp)
000000FE (Command Status - ESME_RDELIVERYFAILURE)
00000002 (Sequence Number)

How to Solve It?

  • Verify that the destination number is correct and active.
  • Check if the handset is reachable (e.g., not switched off or out of coverage).
  • Ensure the message is formatted correctly and does not contain blocked content.
  • Confirm that the carrier is not blocking messages to the recipient.
  • Retry sending after some time if the failure is temporary.

If the issue persists, contact the SMSC provider for further investigation.

More information