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 to 0x01 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.

More information