ESME_RINVPRTFLG in SMPP

What is ESME_RINVPRTFLG?

ESME_RINVPRTFLG (Error Code: 0x0000000D) is an SMPP error indicating that an invalid priority flag was specified in the SMPP request.

Possible Causes

  • The priority_flag field in the PDU contains an invalid value.
  • A non-supported priority value is used that is not recognized by the SMSC.
  • Corrupt or malformed PDU where the priority_flag is incorrectly set.

When Does It Happen?

This error occurs when submitting an SMPP PDU (such as submit_sm) with an incorrect or unsupported priority flag value.

Example SMPP PDU Transaction

The following is an example of an incorrect submit_sm PDU with an invalid priority_flag value:

0000002C (Length)
00000004 (Command ID for submit_sm)
00000000 (Command Status)
00000002 (Sequence Number)
00000000 (Service Type)
35363137 38363530 30303000 (Destination Address)
FF (Invalid Priority Flag)
00000000 (Message Length)
48656C6C6F (Message: "Hello")

Issue: The priority_flag field contains 0xFF, which is invalid.

Correct submit_sm PDU example with a valid priority flag:

0000002C (Length)
00000004 (Command ID for submit_sm)
00000000 (Command Status)
00000002 (Sequence Number)
00000000 (Service Type)
35363137 38363530 30303000 (Destination Address)
01 (Valid Priority Flag)
00000000 (Message Length)
48656C6C6F (Message: "Hello")

How to Solve It?

  • Ensure the priority_flag field has a valid value:
    • 0 – Level 0 (lowest priority, default)
    • 1 – Level 1
    • 2 – Level 2
    • 3 – Level 3 (highest priority)
  • Check the SMSC documentation for supported priority values.
  • Validate the PDU structure before sending.
  • Enable SMPP debugging to log and inspect PDUs.

If the issue persists, contact your SMSC provider to confirm the allowed priority flag values.

More information