360X
API ReferenceRESTWebsocketsFIX
SupportStatusWebsite
API ReferenceRESTWebsocketsFIX
SupportStatusWebsite
  1. FIX
  • Introduction
  • Getting Started
  • Connectivity Setup
  • Authentication
  • Session Management
  • Instrument Discovery
  • Market Data
  • Order Management
  • Request for Quote (RFQ)
  • Message Reference
  • Error Handling
  • Code Examples
  • Troubleshooting
  • Support & Ressources
  • Appendix
  • Exchange FIX Dictionary Downloads
  1. FIX

Troubleshooting

Connection Issues#

Cannot Connect to FIX Server#

Symptoms:
TCP connection refused
Timeout when connecting
Possible Causes:
1.
Incorrect host/port in configuration
2.
Firewall blocking outbound connections
3.
Network connectivity issues
4.
Server maintenance/downtime
Solutions:
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#

Symptoms:
Receive Logout message immediately after Logon
Text field says "Invalid credentials" or "Authentication failed"
Possible Causes:
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)
Solutions:
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#

Symptoms:
Session disconnects after 30-60 seconds
No error message, just TCP disconnect
Possible Causes:
1.
Not sending heartbeats when idle
2.
Network issue causing packet loss
3.
HeartBtInt set incorrectly
Solutions:
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#

Symptoms:
Receive rejection: "MsgSeqNum too low"
Cause:
Sent a message with a sequence number the server has already seen
Solution:
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)#

Symptoms:
Receive ResendRequest from server
Expected seq 20, received seq 25
Cause:
Messages 20-24 were lost in transit or not sent
Solution:
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#

Symptoms:
ExecutionReport with ExecType=REJECTED
Text: "Unknown symbol" or "Invalid ISIN"
Solution:
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#

Symptoms:
Rejection message indicating missing tag
Solution:
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#

Symptoms:
ExecutionReport with ExecType=REJECTED after cancel request
Text: "Too late to cancel" or "Order already filled"
Solution:
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#

Symptoms:
QuoteRequestReject with reason code related to LEI
Solution:
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#

Symptoms:
QuoteStatusReport shows ACTIVE
No Quote (35=S) or QuoteRequestReject (35=AG) received
Possible Causes:
1.
Counterparty has not responded yet
2.
Counterparty is offline
3.
RFQ routing issue
Solutions:
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#

Symptoms:
Messages rejected with validation errors
Unknown tag errors
Solution:
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#

QuickFIX Log Viewer
Online FIX parsers for human-readable format
Compare sent vs received messages

Contact Support#

If issues persist, contact 360X support with:
1.
Your SenderCompID
2.
Timestamp of issue (UTC)
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
Previous
Code Examples
Next
Support & Ressources