Wednesday, 10 March 2010

8 Most Common Error Messages in ValidFIX.

here is a short list of some of the most common errors and warnings you might come across when inspecting
your FIX messages with either Fix Analyzer or Fix Log Analyzer.

1. Error: Not a valid message type.
This happens when the value for the tag 35 (msgType) does not exist.
35=8 is correct (execution report: all fix versions)
35=AA is correct (security status: but only for versions 4.3 and 4.4)
35=CA is correct (no matter the fix version)
35=XXX is wrong (in any fix version)

2. Error: Not a valid item in the enumeration.
This happens when a tag which expects only a specific set of possible values is given an invalid valid.
For example for tag 55 (side of order) only 1 and 2 are acceptable values.
55=1 (means buy)
55=2 (means sell)
55=A is wrong.
55=Buy is wrong

3. Error on BodyLength. Expected 9=?
4. Error on CheckSum. Expected 10=?
BodyLength is the byte count starting at tag 35 (included) all the way to tag 10 (excluded). The checksum is the defined as the sum of all the bytes in the message up to the check sum field modulo 256. Generally those errors happen only when FIX messages have been handcrafted (although In some cases - I am afraid - it might just be buggy fix engine)

5. Error: Missing Mandatory Field ???
Each message in FIX must have at least some required tags. Such as 8,9,35,49,56,34,52,10. Tag 35 in particular defines the message type and additional required tags.
For example if 35=8 (execution report) we would expect tag 14 (cumQty) tag 54 (side) to be present in the message.

6. Warning: Unexpected Tag ???
Tag 35 defines all the mandatory and optional tags that message might contain. It is a mistake - although not an uncommon practice - to send tags which are neither mandatory nor optional.
For instance if 35=0 (heart beat) we would not expect to see tag 44 (price)

7 Invalid countries
8 Invalid currencies.

Valid currencies are CAD,EUR,GBP,
They are defined by ISO 4217 Currency code (
Similarly the list of all valid countries is defined by ISO 3166 Country code(

... and now up to you.
Do you think there are some errors or warnings that our tools don't print ? let us know and we will try to include them.
Please remember that this list is not complete, so make sure you run a little test to prove we don't handle your case before telling us.

No comments:

Post a comment