Understanding and handling errors in the FIX protocol
Tag | Name | Description | Required |
---|---|---|---|
45 | RefSeqNum | Sequence number of rejected message | Yes |
58 | Text | Human-readable error description | No |
371 | RefTagID | Tag that caused the rejection | No |
372 | RefMsgType | Message type being rejected | No |
373 | SessionRejectReason | Rejection reason code | No |
Code | Reason | Description |
---|---|---|
0 | Invalid tag number | Unknown tag in message |
1 | Required tag missing | Mandatory field not present |
2 | Tag not defined for message | Tag not valid for this message type |
3 | Undefined tag | Tag number not in FIX specification |
4 | Tag without value | Empty tag value |
5 | Incorrect value | Invalid value for tag |
6 | Incorrect data format | Wrong data type |
7 | Decryption problem | Security issue |
8 | Signature problem | Authentication failure |
9 | CompID problem | SenderCompID/TargetCompID issue |
10 | SendingTime accuracy | Time outside acceptable window |
11 | Invalid MsgType | Unknown message type |
Tag | Name | Description | Required |
---|---|---|---|
45 | RefSeqNum | Sequence number of rejected message | Yes |
58 | Text | Human-readable error description | No |
371 | RefTagID | Tag that caused the rejection | No |
372 | RefMsgType | Message type being rejected | No |
379 | BusinessRejectRefID | Business ID from rejected message | No |
380 | BusinessRejectReason | Business rejection reason code | Yes |
Code | Reason | Description |
---|---|---|
0 | Other | See Text field for details |
1 | Unknown ID | Referenced ID not found |
2 | Unknown Security | Invalid symbol |
3 | Unsupported Message Type | Message type not implemented |
4 | Application not available | System temporarily unavailable |
5 | Conditionally required field missing | Context-specific field missing |
Code | Reason | Common Causes |
---|---|---|
1 | Unknown symbol | Invalid market ticker |
2 | Exchange closed | Outside trading hours |
3 | Order exceeds limit | Position or order size limit |
4 | Too late to enter | Market expired/closed |
6 | Duplicate order | ClOrdID already used |
11 | Unsupported order characteristic | Invalid order parameters |
99 | Other | See Text field |
Code | Reason | Description |
---|---|---|
0 | Too late to cancel | Order already filled |
1 | Unknown order | Order ID not found |
99 | Other | See Text field |
Error Type | Retry Strategy |
---|---|
Session errors | Fix protocol issue before retry |
Rate limit | Exponential backoff |
Exchange closed | Wait for market open |
Insufficient funds | Check balance before retry |
Unknown symbol | Verify symbol, don’t retry |
Identify Error Type
Apply Appropriate Action
Monitor and Alert
Symptom | Likely Cause | Resolution |
---|---|---|
Logon rejected | Invalid signature | Check RSA key and signature algorithm |
CompID problem | Wrong API key | Verify SenderCompID matches API key |
Time accuracy | Clock skew | Sync system time with NTP |
Error | Check | Action |
---|---|---|
Unknown symbol | Symbol format | Use exact ticker from market data |
Order exceeds limit | Position limits | Query current position |
Duplicate ClOrdID | ID generation | Ensure UUID uniqueness |
Invalid price | Price range | Ensure 1-99 cents |