After sending a TestRequest, What to do if HB NOT received with exact TestReqID but received other msgs and HBs

Scenario:

  1. Client connects to Server and sends a Logon request(35=A)
  2. Server responds with a Logon response(35=A)
  3. Server sends a TestRequest msg with TestReqID=ABC (purpose : Synchronize FIX sequence numbers)
  4. Client does NOT send a Heartbeat msg with TestReqID=ABC, but sends other application msgs and Heartbeats(without TestReqID).

As per the FIX standard, Is it mandatory for server to disconnect the connection in above case ?

Below session tests case only mentions to track TestReqID, but it does NOT mention what to do if it is NOT received.

Scenario 6 Send Test Request.

  1. Track and verify that a Heartbeat(35=0) message with the same TestReqID(112) is received (may not be the next message received).|

Failure to receive a HeartBeat(35=0) response with TestReqID(112) present and set to the value from the TestRequest(35=1) message is considered an error. The FIX connection should be terminated by sending a Logout(35=5) message with the Text(58) field stating that the session was terminated due to lack of a response to a TestRequest(35=1) message, followed by terminating the transport layer connection

From https://www.fixtrading.org/standards/fix-session-layer-online/#test-request-processing

1 Like