ESME_RINVMSGID in SMPP

What is ESME_RINVMSGID?

ESME_RINVMSGID (Error Code: 0x0000000C) is an SMPP error indicating that the provided message ID is invalid or not recognized by the SMSC.

Possible Causes

  • The message_id field in the request is missing or incorrectly formatted.
  • The message ID does not exist on the SMSC.
  • The message ID has expired or been deleted from the SMSC's database.
  • A previously used message ID was provided instead of a valid one.
  • The message ID is not associated with the ESME (External Short Messaging Entity) making the request.

When Does It Happen?

This error occurs when sending an SMPP PDU (such as query_sm or cancel_sm) with an invalid or unrecognized message ID.

Example SMPP PDU Transaction

Incorrect query_sm PDU (Invalid Message ID)

0000001D (Length)
00000003 (Command ID for query_sm)
00000000 (Command Status)
00000002 (Sequence Number)
00000000 (Service Type)
31323334 35363738 39300000 (Invalid Message ID: "1234567890")

Response PDU (query_sm_resp) with ESME_RINVMSGID

00000010 (Length)
80000003 (Command ID for query_sm_resp)
0000000C (Command Status - ESME_RINVMSGID)
00000002 (Sequence Number)

Issue: The message ID provided ("1234567890") is either incorrect or not found in the SMSC database.

How to Solve It?

  • Ensure the correct message ID is being used from a previous submit_sm_resp response.
  • Verify that the message ID has not expired or been removed from the SMSC.
  • Check for any formatting errors in the message_id field (e.g., missing null terminator).
  • Confirm that the message ID belongs to the ESME making the request.
  • Enable debugging logs to inspect the exact values being sent in the PDU.

If the issue persists, contact the SMSC provider to check the validity of the message ID.

More information