Explanation of log messages about validation and parsing errors

Overview

This article provides information about log messages related to validation and parsing errors.

Validation errors

Validation collects the errors until the end of the message, groups them per type, and then reports each group in one row of the log file.


  • Unrecognized tags are found in the message

    The following tag(s) is not defined for this message type: <tag number1>, ..., <tag numberN>; <tag_numberNN> in Group<lead_tagNN>, Entry #=<entry_numberNN>[Nested group <lead_tagM>, Nested entry #=<entry_numberM>],[...]. Error(s) in message <message_type> with sequence number <seq_number>.

    Description: All found unrecognized tags in the message are reported in one row of the log file. 


  • Empty tags are found in the message

    The following tag(s) is specified with no value: <tag number1>, ..., <tag numberN>; <tag_numberNN> in Group <lead_tagNN>, Entry #=<entry_numberNN>[Nested group <lead_tagM>, Nested entry #=<entry_numberM>],[...]. Error(s) in message <message_type> with sequence number <seq_number>.

    Description: All found empty tags in the message are reported in one row of the log file.


  • Tags with the incorrect data format are found in the message

    The following tag(s) is specified with no value: <tag number1>, ..., <tag numberN>; <tag_numberNN> in Group <lead_tagNN>, Entry #=<entry_numberNN>[Nested group <lead_tagM>, Nested entry #=<entry_numberM>],[...]. Error(s) in message <message_type> with sequence number <seq_number>.

    Description: All found tags with the incorrect data format in the message are reported in one row of the log file.


  • Required tags are missed in the message

    The following required tag(s) is missing: <tag number1>, ..., <tag numberN>; <tag_numberNN> in Group <lead_tagNN>, Entry #=<entry_numberNN>[Nested group <lead_tagM>, Nested entry #=<entry_numberM>],[...]. Error(s) in message <message_type> with sequence number <seq_number>.

    Description: All missing required tags in the message are reported in one row of the log file.


  • Component blocks are empty in the message

    The following required tag(s) is missing: <tag number1>, ..., <tag numberN>; block <block_name1> (<req_tag number1>, ..., <req_tag numberN>),... ,block <block_nameN> (<req_tag number1>, ..., <req_tag numberN>); <tag_numberNN> in Group <lead_tagNN>, Entry #=<entry_numberNN>[Nested group<lead_tagM>, Nested entry #=<entry_numberM>],[...]. Error(s) in message <message_type> with sequence number <seq_number>.

    Description: All empty component blocks in the message are reported in one row of the log file and displayed as part of the Required tags are missed error message.


  • FIX protocol version in the message differs from the one in the session

    Cannot send the given message: the version of the message is <FIX version 1>, whereas session's version is <FIX version 2>.

    Description: The FIX protocol version in the message differs from the one in the session. Except the FIXT 1.1.

    The first found error during validation is written in the <SessionRejectReason>(373) field in Reject (3) message. The rest of found errors are enumerated in the <Text>(58) field in addition if any.

Parsing errors

All the parsing errors that prevent the work proceeding are not collected at all and reported immediately when occur.


  • The wrong tags positions in the message - outside an expected repeating group

    Tag 55 is on a wrong level. This tag must be in group with leading tag: 146. Parsing stopped at column: 126 at tag 55 in message V with sequence number 2.

    Description: Valid value is in the <SessionRejectReason> (373) field in case of parsing error. Detailed error description is in the <Text> (58) field in case of parsing error. A Reject message is received with <SessionRejectReason> = "Tag specified out of required order" (373=14).


  • Inconsistency between the declared and the expected numbers of entries in the repeating group

    Incorrect NumInGroup count for repeating group (tag 78). Declared entries count: 2. Entries count in fact: 1. Parsing stopped at column: 188 in tag N/A in message D with sequence number <2>.

    Description: A Reject message has the tag SessionRejectReason (373) equaled to <Incorrect NumInGroup count for repeating group> (16) if a repeating group has an incorrect number of tags.

Errors types

  1. Fatal errors. Parsing stops immediately without error collecting:
    • WrongSize (ParserException)
    • NoTagsDelimiterAtTheEnd (ParserException)
    • UnexpectedEOF (ParserException)
    • UnexpectedField (TagOutOfOrderException)
    • UnknownMsgType (InvalidMsgTypeException)
    • LastRootTagIsNotCheckSum (TagOutOfOrderException)
    • Invalid CheckSum (IncorrectCheckSumException)
    • ReperatingGroupBounds (IncorrectNumInGroupCountForRepeatingGroupException)
    • EncryptionExceptions (if an encryption method is being used) 
    • UnknownField (TagNotDefinedForThisMessageTypeException)
    • UnknownFieldInGroup (TagNotDefinedForThisMessageTypeException)
  2. Validation errors. The errors are collected instead of throwing an exception:
    • UnknownField (TagNotDefinedForThisMessageTypeException)
    • TagSpecifiedWithoutValueException
    • Incorrect field data format (ValidationException)
    • RequiredTagMissingException
    • Error while evaluating conditional required expression (ParserException)
    • RequiredBlockWithoutFieldsCharPtr