ESME_RMISSINGTLV in SMPP

What is ESME_RMISSINGTLV?

ESME_RMISSINGTLV (Error Code: 0x000000C3) is an SMPP error indicating that a mandatory Tag-Length-Value (TLV) parameter is missing from the request.

Possible Causes

  • A required TLV parameter is omitted from the SMPP PDU.
  • The request structure does not conform to the SMPP specification.
  • The application sending the request fails to include a necessary TLV.

When Does It Happen?

This error occurs when an ESME sends an SMPP request that requires a specific TLV, but the TLV is not included in the PDU.

Example SMPP PDU Transaction

Request PDU (submit_sm) Sent by ESME Without a Mandatory TLV

0000003C (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")

Response PDU (submit_sm_resp) with ESME_RMISSINGTLV

00000010 (Length)
80000004 (Command ID for submit_sm_resp)
000000C3 (Command Status - ESME_RMISSINGTLV)
00000001 (Sequence Number)

Issue: A mandatory TLV (e.g., message_payload or source_subaddress) is required but missing from the request.

How to Solve It?

  • Check the SMPP specification for mandatory TLVs required for the command.
  • Ensure that the application includes all required TLV parameters.
  • Use an SMPP simulator or packet analyzer to verify the PDU structure.
  • Modify the request to include the missing TLV and retry.

Adding the required TLV parameter will resolve this issue.

More information