ESME_RINVBNDSTS in SMPP

What is ESME_RINVBNDSTS?

ESME_RINVBNDSTS (Error Code: 0x00000005) is an SMPP error that indicates an invalid binding status. This occurs when an SMPP command is sent in an incorrect binding state.

Possible Causes

  • Attempting to send a submit_sm or similar message without being properly bound.
  • Trying to send a bind_transmitter or bind_receiver command while already bound.
  • Issuing a unbind command when not in a bound state.
  • Network issues causing a session to be lost but not properly detected by the client.

When Does It Happen?

This error occurs when an SMPP client sends a command that is not allowed in its current binding state.

Example SMPP PDU Transaction

The following is an example of an incorrect submit_sm PDU sent before binding:

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

Issue: The client sent a submit_sm request before establishing a valid SMPP session.

Correct sequence:

  1. First, send a valid bind_transmitter PDU:
  2.     0000001C (Length)
        00000002 (Command ID for bind_transmitter)
        00000000 (Command Status)
        00000001 (Sequence Number)
        74657374 000000 (System ID: "test")
        000000 (Password)
        
  3. Once bound successfully, send the submit_sm PDU.

How to Solve It?

  • Ensure that the client is successfully bound before sending message-related commands.
  • Use the correct bind mode (transmitter, receiver, or transceiver) before sending messages.
  • Check for session timeouts or disconnections that may cause the bind state to be lost.
  • Enable debugging logs to trace the sequence of SMPP commands.

If the issue persists, verify the binding state by reviewing server responses and confirming that the session remains active.

More information