ESME_RINVREPFLAG in SMPP

What is ESME_RINVREPFLAG?

ESME_RINVREPFLAG (Error Code: 0x00000054) is an SMPP error indicating that the replace_if_present_flag field in the submit_sm PDU contains an invalid or unsupported value.

Possible Causes

  • The replace_if_present_flag field contains an incorrect or undefined value.
  • The SMSC does not support message replacement.
  • The ESME is attempting to use an invalid flag setting.

When Does It Happen?

This error occurs when an ESME sends a submit_sm request with an invalid replace_if_present_flag value that is not recognized by the SMSC.

Example SMPP PDU Transaction

Incorrect submit_sm PDU (Invalid Replace If Present Flag)

0000002F (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)
FF (Invalid Replace If Present Flag)
00 (Sm Default Msg ID)
0005 (Message Length)
48656C6C 6F (Message: "Hello")

Response PDU (submit_sm_resp) with ESME_RINVREPFLAG

00000010 (Length)
80000004 (Command ID for submit_sm_resp)
00000054 (Command Status - ESME_RINVREPFLAG)
00000001 (Sequence Number)

Issue: The replace_if_present_flag field is set to an invalid value (0xFF), which is not recognized by the SMSC.

How to Solve It?

  • Use a valid replace_if_present_flag value:
    • 0x00 - Do not replace if present
    • 0x01 - Replace if present
  • Ensure the SMSC supports message replacement before using the flag.
  • Verify the PDU structure and ensure all field values are correctly set.
  • Consult the SMSC provider for supported values if the issue persists.

If the problem continues, enable debug logging and review the raw SMPP transactions for further diagnosis.

More information