Hi,
If a message is received with an “=” sign in between two SOH characters ( i.e Tag1=Value1<SOH>=Tag2=Value2<SOH>), what is the SessionRejectReason (373) that should be used in rejecting such messages? I have gone through the FIX defined rejections pertaining to the field SessionRejectReason (373). But I am unable to figure out which one to use. Or should we use 99 (other)? Can you please share your opinion?
From the perspective a Tag Value parser, the next expected data element after <SOH> should be a tag, and the tag characters extend to the next ‘=’ character. Therefore, it would see =Tag2 as the tag, which is obviously incorrect. Therefore, a reject reason of 0 “Invalid Tag Number” seems logical to me.
[Having said that, SessionRejectReason (373) is a bit odd since the majority of the reasons are about malformed message encoding rather than session layer violations. In more recent FIX technical protocols, we strived to keep better separation of protocol layers.]
1 Like
Thank you so much Donald. Yes, what you have suggested perfectly make sense.