ESME_RREPLACEFAIL in SMPP

What is ESME_RREPLACEFAIL?

ESME_RREPLACEFAIL (Error Code: 0x00000013) is an SMPP error indicating that the replace_sm request failed.

Possible Causes

  • The message ID provided in the replace_sm request does not exist.
  • The message has already been delivered and cannot be replaced.
  • The SMSC does not support message replacement.
  • The ESME does not have permission to replace messages.
  • The message ID belongs to another ESME account.

When Does It Happen?

This error occurs when sending a replace_sm PDU, and the SMSC is unable to replace the requested message.

Example SMPP PDU Transaction

Incorrect replace_sm PDU (Invalid Message ID)

0000002D (Length)
00000007 (Command ID for replace_sm)
00000000 (Command Status)
00000003 (Sequence Number)
31323334 35363738 39300000 (Invalid Message ID: "1234567890")
00 (Source Address TON)
01 (Source Address NPI)
31323334 00 (Source Address: "1234")
00000000 (Schedule Delivery Time - Not Set)
00000000 (Validity Period - Not Set)
04 (Registered Delivery)
00 (Sm Default Msg ID)
0006 (Message Length)
54657374 3031 (Message: "Test01")

Response PDU (replace_sm_resp) with ESME_RREPLACEFAIL

00000010 (Length)
80000007 (Command ID for replace_sm_resp)
00000013 (Command Status - ESME_RREPLACEFAIL)
00000003 (Sequence Number)

Issue: The message ID provided ("1234567890") does not exist or cannot be replaced.

How to Solve It?

  • Verify that the message ID exists and was correctly retrieved from a submit_sm_resp.
  • Ensure the message has not already been delivered.
  • Check if the SMSC supports message replacement.
  • Confirm that the ESME has the necessary permissions to replace messages.
  • Enable debugging logs to inspect the exact values being sent in the PDU.

If the issue persists, contact the SMSC provider to verify message replacement policies and resolve the issue.

More information