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_flagfield 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_flagis 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_flagfield has a valid value: 0– Level 0 (lowest priority, default)1– Level 12– Level 23– 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.