Connection Issues#
Cannot Connect to FIX Server#
1.
Incorrect host/port in configuration
2.
Firewall blocking outbound connections
3.
Network connectivity issues
4.
Server maintenance/downtime
1.
Verify endpoint: fix.360x.com:5005 (production) or fix.sandbox.360x.com:5005 (sandbox)
2.
Test connectivity: telnet fix.360x.com 5005
3.
Check firewall rules allow outbound TCP on port 5005
4.
Contact 360X support if server appears down
Logon Rejected#
Receive Logout message immediately after Logon
Text field says "Invalid credentials" or "Authentication failed"
1.
Incorrect OAuth client_id or client_secret
2.
Missing Tag 553 or Tag 554 in Logon message
3.
SenderCompID not registered with 360X
4.
TargetCompID incorrect (must be 360X)
1.
Verify Tag 553 (Username) = your OAuth client_id
2.
Verify Tag 554 (Password) = your OAuth client_secret
3.
Confirm SenderCompID matches your registered identifier
4.
Ensure TargetCompID is exactly 360X (with hyphen)
5.
Contact 360X support to verify credentials
Heartbeat Timeout / Disconnection#
Session disconnects after 30-60 seconds
No error message, just TCP disconnect
1.
Not sending heartbeats when idle
2.
Network issue causing packet loss
3.
HeartBtInt set incorrectly
1.
Verify HeartBtInt=30 in configuration
2.
Ensure FIX engine is generating heartbeats automatically
3.
Check network quality (ping, traceroute)
4.
Monitor FIX logs for Heartbeat (35=0) messages
5.
Send TestRequest (35=1) to verify bidirectional communication
Sequence Number Issues#
Sequence Number Too Low#
Receive rejection: "MsgSeqNum too low"
Sent a message with a sequence number the server has already seen
1.
Check if message was sent twice (duplicate)
2.
If reconnecting, ensure sequence numbers match previous session
3.
Use ResetOnLogon=Y to reset sequence numbers on each connection
4.
Manually increment sequence number tracking
Sequence Number Too High (Gap Detected)#
Receive ResendRequest from server
Expected seq 20, received seq 25
Messages 20-24 were lost in transit or not sent
1.
Respond to ResendRequest with missing messages (set PossDupFlag=Y)
2.
If messages cannot be resent, send SequenceReset (35=4)
3.
Review FIX logs to identify why messages were not sent
4.
Consider ResetOnLogon=Y for simpler sequence management
Order Issues#
Order Rejected: Unknown Symbol#
ExecutionReport with ExecType=REJECTED
Text: "Unknown symbol" or "Invalid ISIN"
1.
Send SecurityListRequest (35=x) to get valid ISINs
2.
Verify SecurityID (Tag 48) matches an ISIN from SecurityList
3.
Ensure SecurityIDSource (Tag 22) = 4 (ISIN)
Order Rejected: Required Tag Missing#
Rejection message indicating missing tag
1.
Review NewOrderSingle required tags:ClOrdID (11), Account (1), SecurityID (48), SecurityIDSource (22)
Side (54), OrderQty (38), OrdType (40)
Price (44) for LIMIT orders
2.
Add missing tag to message
3.
Review 360X data dictionary for additional requirements
Cancel Rejected: Order Already Filled#
ExecutionReport with ExecType=REJECTED after cancel request
Text: "Too late to cancel" or "Order already filled"
This is expected behavior - order matched before cancel processed
Check for FILL ExecutionReport received before cancel
Implement cancel acknowledgment timeout
Handle partial fills (may cancel remaining quantity)
RFQ Issues#
Quote Request Rejected: Invalid LEI#
QuoteRequestReject with reason code related to LEI
1.
Validate CounterpartyLEI (Tag 36012) is exactly 20 characters
2.
Verify LEI is registered and valid
3.
Ensure LEI format matches ISO 17442 standard
No Quotes Received#
QuoteStatusReport shows ACTIVE
No Quote (35=S) or QuoteRequestReject (35=AG) received
1.
Counterparty has not responded yet
1.
Wait for timeout period (typically 30-60 seconds)
2.
Implement RFQ timeout logic
3.
Send QuoteCancel if no response
4.
Contact counterparty to verify connectivity
5.
Contact 360X support if routing suspected
Data Dictionary Issues#
Message Validation Failed#
Messages rejected with validation errors
1.
Ensure using FIX50SP2-360X.xml data dictionary
2.
Verify DataDictionary path in configuration is correct
3.
Download latest data dictionary from 360X support
4.
Check ValidateUserDefinedFields=Y in configuration
Debugging Tips#
Enable Verbose Logging#
Analyze FIX Logs#
1.
Check ./log/FIX.*.messages.log for all messages
2.
Check ./log/FIX.*.event.log for session events
3.
Look for patterns in rejections
4.
Verify sequence number continuity
Use FIX Message Viewer#
Online FIX parsers for human-readable format
Compare sent vs received messages
If issues persist, contact 360X support with:3.
FIX logs (sanitize credentials)
4.
Description of expected vs actual behavior
5.
Sample messages that failed
Modified at 2026-03-09 15:06:12