0

This is my first time using QuickFIX/n in a .NET application as a FIX initiator. I'm connecting via a local TCP proxy (written in C#) to connect to a counterparty. Here's the relevant setup:

  1. QuickFIX/n (1.7.0 binaries)
  2. .NET Core 8 Application
  3. connecting to 127.0.0.1:15067 (custom proxy) Proxy listening on 127.0.0.1:15068, forwarding to 127.0.0.1:15067

Verified raw TCP messages look valid using a hex logger in the proxy

Issue

QuickFIX/n throws this error shortly after sending the logon:

Session FIX.4.4:my_fix_initiator->broker_fix disconnecting: QuickFix.MessageParseError: Could not parse message: Error at position (3) while parsing msg (8=FIX.4.4...) ---> System.FormatException: The input string 'IX.4.49' was not in a correct format. It appears QuickFIX/n is interpreting the message as starting with 'IX.4.4' instead of '8=FIX.4.4'.

What I’ve verified My proxy logs the exact bytes sent to QuickFIX/n. Here's the relevant hex: HEX: 38 3D 46 49 58 2E 34 2E 34 01 39 3D 31 30 35 01 33 35 3D 41 01 ... ASCII: 8=FIX.4.49=10535=A... The full message is well-formed and includes correct checksum and SOH delimiters (\x01). My client.cfg is:

[DEFAULT]
ConnectionType=initiator
SenderCompID=my_fix_initiator
TargetCompID=broker_fix
SocketConnectHost=127.0.0.1
SocketConnectPort=15068
BeginString=FIX.4.4
UseDataDictionary=Y
DataDictionary=FIX44.xml
ResetOnLogon=Y
ResetSeqNumFlag=Y
HeartBtInt=30
ValidateFields=N
ValidateFieldsOutOfOrder=N
LogHeartbeats=Y
LogIncomingMessages=Y
LogOutgoingMessages=Y

My question Why is QuickFIX/n misreading the message start as 'IX.4.4'? Is there a known bug or edge case in QuickFIX/n's socket handling that might drop or mangle the first byte?

2
  • Did you try with a recent version of quickfixn? Commented May 9 at 2:37
  • QF/n 1.7 is 9 years old. How and why are you using such an old release for your first QF/n app? Please update to latest and try again. (Also: if using a Nuget QF/n package, you should specify exactly which Nuget package you are using, not just a version number.) Commented May 9 at 14:59

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.