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 the GapFillFlag field 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 U.S. Options FIX Specification - FINANCIAL INFORMATION EXCHANGE PROTOCOL / ADMINISTRATIVE MESSAGES / Sequence Reset (Gap Fill) | Cboe