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.