Cancel / Amend request recieved as a part of resend request response with 43=Y

Party A sends heartbeat with sequence 34=788. Now FIX session disconnects due to some network issue. During disconnection, user at party A is allowed to send a cancel request on an open order. Now at session reconnection, Party A sends logon request at 34=790. But Party B was expecting it at 34=789. Since a higher sequence was recieved, Party B sends resends request 35=2. Now as a response to the resend request, Party A sends the cancel request 35=F with sequence 34=789, which the user put into the system during disconnection. This cancel request was sent by Party A along with 43=Y. Now party B says, they will not process the cancel request because it was recieved in the response to the resend req and that too along with 43=Y possible duplicate.
Party B expects Party A to resend the Cancel request.
Kindly guide on what should be the right approach and how should this cancel req be handled ?

Per the Session Layer standard, the receiver should interrogate the message to determine whether it has been received prior or not, and if not they should process it. However, there is a danger to this if the missed message is a stale order (35=D for example) because the sender may not want the stale order acted on by the receiver.

No easy answer here. Better to establish what the business expectations are for situations like this.

My 2 cents for your specific example, the receiver should have attempted to process that cancel request since it is not an order message (i.e. 35=D).

There is no harm in processing duplicate cancel requests, you may simply get “order not found” if terminated orders are removed from the book. However, there is a big difference between 0 and 1 cancel request being executed :slight_smile: Party A wanted to cancel the order, i.e. there is no doubt about the intention. Only the communication of the intention was delayed. Party A may have used the phone to ask for the cancellation during the disconnection period, i.e. Party B’s FIX engine did not see that request until after the resend. No harm to process the delayed cancel request even if the order was already manually deleted based on a phone call.