Cancel request received while pending cancel/replace

Imported from previous forum

[ original email was from John Prewett - jprewett@lavatrading.com ]
I have looked in the 4.3 order state matrices for assistance but cannot discover this scenario. I therefore humbly request assistance.

Scenario:

  1. New Order ClOrdID=X is received.
  2. Execution report ClOrdID=X is returned with ExecType="New" (ie an ACK to the order).
  3. Cancel/replace ClOrdID=Y, OrigClOrdID=X is received.
  4. Execution report ClOrdID=Y ExecType="pending replace" is returned.
  5. CancelRequest ClOrdID=Z, OrigClOrdID=Y is received while Y is still pending replace.

Question 1:
Is the correct behavior to "stack" the cancel request(Z) until the cancel/replace(Y) becomes "active" and then cancel the order ?
I would tend to think this is appropriate from a business perspective. The trader wants out, no matter the timing issues.

Question 2:
If the cancel/replace(Y) ultimately fails, what should be done with the “stacked” CancelRequest(Z) ?
While I would think that the business perspective is still that the trader wishes the order to be cancelled, things have become more difficult. From the FIX perspective, Z cancels Y, yet Y never became “active”, therefore anything that depended on Y becoming active must be ignored. I’m too timid to even have an opinion on this one.

Thanks in advance for your assistance.