ESME_RINVTLVLEN in SMPP

What is ESME_RINVTLVLEN?

ESME_RINVTLVLEN (Error Code: 0x000000C2) is an SMPP error indicating that a Tag-Length-Value (TLV) parameter in the request has an invalid length, meaning the length specified does not match the actual data length.

Possible Causes

  • The TLV length field does not match the expected size for the given TLV tag.
  • The provided length is shorter or longer than required by the SMPP specification.
  • The TLV structure is corrupted or malformed.
  • Encoding errors in the TLV field.

When Does It Happen?

This error occurs when an ESME sends an SMPP request containing a TLV parameter where the length field does not correctly match the actual value size.

Example SMPP PDU Transaction

Request PDU (submit_sm) Sent by ESME with an Invalid TLV Length

00000040 (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)
00 (Replace If Present Flag)
00 (Sm Default Msg ID)
0005 (Message Length)
48656C6C 6F (Message: "Hello")
0421 0004 01 (Invalid TLV: Specified Length 4, Actual Data 1 Byte)

Response PDU (submit_sm_resp) with ESME_RINVTLVLEN

00000010 (Length)
80000004 (Command ID for submit_sm_resp)
000000C2 (Command Status - ESME_RINVTLVLEN)
00000001 (Sequence Number)

Issue: The TLV (Tag 0x0421) specifies a length of 4 bytes, but the actual value provided is only 1 byte.

How to Solve It?

  • Check the SMPP specification to verify the correct TLV length requirements.
  • Ensure that the length field accurately reflects the actual data size.
  • Validate the TLV structure before sending the request.
  • Use an SMPP simulator or packet analyzer to inspect the PDU structure.
  • Remove or correct the problematic TLV and test again.

Fixing the TLV length field to match the actual value size will resolve this issue.

More information