ESME_RINVSUBREP in SMPP
What is ESME_RINVSUBREP?
ESME_RINVSUBREP (Error Code: 0x00000042) is an SMPP error indicating that the submit_with_replace
request contains an invalid or unsupported field.
Possible Causes
- The
submit_with_replace
operation is not supported by the SMSC. - Invalid values were used in the
replace_if_present_flag
field. - The original message ID provided for replacement does not exist.
- The SMSC does not allow replacing messages for the given message type or recipient.
When Does It Happen?
This error occurs when sending a submit_sm
or replace_sm
PDU with an invalid replace flag or message ID.
Example SMPP PDU Transaction
Incorrect replace_sm
PDU (Invalid Replace Flag)
00000030 (Length) 00000007 (Command ID for replace_sm) 00000000 (Command Status) 00000003 (Sequence Number) 31323334 35363738 00 (Invalid Message ID: "12345678") 01 (Source Address TON) 01 (Source Address NPI) 31323334 00 (Source Address: "1234") 00000000 (Schedule Delivery Time - Not Set) 00000000 (Validity Period - Not Set) 05 (Invalid Replace If Present Flag) 0005 (Message Length) 48656C6C 6F (Message: "Hello")
Response PDU (replace_sm_resp
) with ESME_RINVSUBREP
00000010 (Length) 80000007 (Command ID for replace_sm_resp) 00000042 (Command Status - ESME_RINVSUBREP) 00000003 (Sequence Number)
Issue: The replace flag used ("05") is not valid, or the message ID is incorrect.
How to Solve It?
- Ensure that the
replace_if_present_flag
is set to0x01
for valid replacements. - Verify that the message ID provided exists and is correct.
- Check with the SMSC provider whether the
replace_sm
operation is supported. - Review the SMPP documentation for valid values in
replace_sm
requests. - 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 configuration issues.