ZagTrader

FIX Protocol Errors and How to Fix Them

The errors FIX engines log and the rejects counterparties send, each with what it means, the usual causes, what to change on each side of the session and an example you can open in the parser.

Have a log? Paste it into the FIX parser: it checks BodyLength, CheckSum and sequence gaps for every message.

Sequence numbers and recovery

MsgSeqNum (34) problems, resends, gap fills and duplicate handling.

Garbled messages

Framing errors that make a receiver drop the message without a Reject.

  • Incorrect BodyLength (tag 9)

    Why a FIX counterparty drops your message for an incorrect BodyLength (tag 9), how to count it in bytes, and how to check a message in the parser.

  • CheckSum mismatch: invalid checksum (tag 10)

    What an invalid FIX CheckSum (tag 10) means, how the three-digit value is calculated, the usual causes and how to check a message in the parser.

Session-level rejects (35=3)

Validation failures reported with a Reject message and SessionRejectReason (373).

Logon, heartbeats and logout

Sessions that will not log on or drop after a while.

Order and cancel rejects

Business rejects of orders, cancels and replaces.

FIX version mismatches

Values and fields that changed between FIX 4.2, 4.4 and 5.0.