Heartbeat, TestRequest, ResendRequest, and Reject handlers in the session layer do not call verify_message, so incoming sequence number gaps go undetected for these message types.
For example, if a Heartbeat arrives with MsgSeqNum=100 when we expect 5, we just increment to 6 without noticing the gap. No ResendRequest is sent and messages 5–99 are silently lost.
All inbound messages should be verified for sequence number correctness (and CompID, SendingTime, etc.), with the specific checks toggled per message type as appropriate.