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.
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?
@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.
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.