FIX Reject Messages Explained
FIX reject messages (MsgType=3) indicate that a message was rejected by the broker or exchange. Understanding reject codes, RefTagID, and SessionRejectReason helps you quickly diagnose and fix FIX protocol issues.
Understanding FIX Reject Structure
A FIX Reject message contains several key fields:
- RefTagID (371): Identifies the specific tag that caused the rejection
- RefMsgType (372): The message type that was rejected (e.g., D=NewOrderSingle)
- SessionRejectReason (373): Numeric code explaining why the message was rejected
- Text (58): Human-readable description of the rejection
Common SessionRejectReason Codes
| Code | Description | Common Causes |
|---|---|---|
| 5 | Invalid tag number | Tag not recognized, version mismatch |
| 6 | Required tag missing | Mandatory field absent (check RefTagID) |
| 10 | Value is incorrect | Invalid enum, out of range, wrong format |
| 11 | Incorrect data format | Timestamp format, numeric format error |
Common Reject Scenarios
Tag 371 Missing ClOrdID
RefTagID=371 indicates ClOrdID (tag 11) was missing from an order message.Learn more →
Reject 102 – Too Late to Cancel
OrderCancelReject with CxlRejReason=102 means the order cannot be canceled because it's already filled or in a terminal state.Learn more →
Analyze Your FIX Rejects
Upload or paste your FIX logs to automatically detect reject messages and understand why orders were rejected.
Analyze FIX LogsRelated Resources
- FIX Error Codes – Complete error index
- Common FIX Reject Codes – Detailed reject explanations
- FIX Reject 371 Explained