Sequence number on Logon message when ResetSeqNumFlag=Y

There is an issue open for QuickFIX/J which deals with the MsgSeqNum on the Logon message when ResetSeqNumFlag is true. There it is claimed that such a Logon is only valid when the MsgSeqNum is 1.

But I could not find anything in the official FIX spec backing this request.

Probably https://www.fixtrading.org/standards/fix-session-layer-online/#using-resetseqnumflag141-to-reset-fix-session-for-24-hour-connectivity and https://www.fixtrading.org/standards/fix-session-layer-online/#using-resetseqnumflag141-to-reset-fix-session-during-fix-connection-establishmentresetseqnumflag were confused? In the QFJ issue it is explicitly mentioned that the reset should not occur while the connection is already established but on Logon.

The first link proposes that the sequence number should be 1 but there is not anything mentioned about the seqnum in the second link.
So I assume that the sequence number does not have to be 1 in that case? Is there any reason why that distinction was made between the two cases above?

Thanks in advance!

@christophjohn, I believe the text behind your second link is a specialisation of the first which is more explicit. I do not think it was intended to imply that you could reset the sequence numbers to a value other than 1. ResetSeqNumFlag(141) is a field that is only on the Logon message. It is different from the SequenceReset(35=4) message that synchronises sequence numbers and NewSeqNo(36) is probably rarely “1”.

So I guess I do not see a use case for a Logon(35=A) message with ResetSeqNumFlag(141)=Y and a value of MsgSeqNum(34) other than 1. Resetting a sequence should not be to an arbitrary value.

FIX 4.4 introduced NextExpectedMsgSeqNum(789) to synchronise on expected sequence numbers but this is not a reset operation.

1 Like

Thanks for your reply, Hanno.

Sorry for not being clear enough. Of course I also think it only makes sense to reset the sequence numbers to 1. I was more referring to the MsgSeqNum(34) of the Logon message which bears the ResetSeqNumFlag(141)=Y and whether it is required for that Logon message to have a MsgSeqNum equal to 1.

QFJ currently does not validate whether the MsgSeqNum of a received Logon is 1 when ResetSeqNumFlag=Y and does the reset anyway (as long as the MsgSeqNum is not lower than the next expected sequence number, then Logon is rejected).
Reading FIX Session Layer Online – FIX Trading Community v2.1 again I do not see why a restriction to MsgSeqNum=1 should be made and rather keep it as it is.