FINANCIAL INFORMATION EXCHANGE PROTOCOL / ADMINISTRATIVE MESSAGES / Sequence Reset (Gap Fill)

The sequence reset message is used by the sending application to reset the incoming sequence number on the opposing side. This message has two modes: Sequence Reset-Gap Fill when GapFillFlag is Y and Sequence Reset-Reset when GapFillFlag is N or not present. The Sequence Reset-Reset mode should ONLY be used to recover from a disaster situation which cannot be otherwise recovered via Gap Fill mode. The sequence reset message can be used in the following situations:

  • During normal resend processing, the sending application may choose not to send a message (e.g. an aged order). The Sequence Reset - Gap Fill is used to mark the place of that message.

  • During normal resend processing, a number of administrative messages are not resent, the Sequence Reset - Gap Fill message is used to fill the sequence gap created.

...

The sending application will initiate the sequence reset. The message in all situations specifies NewSeqNo to reset as the value of the next sequence number immediately following the messages and/or sequence numbers being skipped.

...

If GapFillFlag is present (and equal to Y), the MsgSeqNum should conform to standard message sequencing rules (i.e. the MsgSeqNum of the Sequence Reset-GapFill message should represent the beginning MsgSeqNum in the GapFill range because the remote side is expecting that next message).

The sequence reset can only increase the sequence number. If a sequence reset is received attempting to decrease the next expected sequence number the message should be rejected and treated as a serious error. It is possible to have multiple ResendRequests issued in a row (i.e. 5 to 10 followed by 5 to 11). If sequence number 8, 10, and 11 represent application messages while the 5-7 and 9 represent administrative messages, the series of messages as result of the Resend

Request may appear as SeqReset-GapFill with NewSeqNo of 8, message 8, SeqReset-GapFill with NewSeqNo of 10, and message 10. This could then followed by SeqReset-GapFill with NewSeqNo of 8, message 8, SeqReset-GapFill with NewSeqNo of 10, message 10, and message 11. One must be careful to ignore the duplicate SeqReset-GapFill which is attempting to lower the next expected sequence number. This can be detected by checking to see if its MsgSeqNum is less than expected. If so, the SeqReset-GapFill is a duplicate and should be discarded.

Cboe Titanium Cboe Futures Exchange FIX Specification - FINANCIAL INFORMATION EXCHANGE PROTOCOL / ADMINISTRATIVE MESSAGES / Sequence Reset (Gap Fill) | Cboe