-
Notifications
You must be signed in to change notification settings - Fork 585
Description
Technical Issue Description:
Our FIX Engine intermittently disconnects due to an error message stating “Incorrect BeginString (FIX.4.4)”, even though the BeginString field is received correctly and shows no formatting or content issues upon inspection. As a result, our FIX server experiences temporary disconnections during message handling.
We are currently using QuickFIX/n.Core version 1.13.1, and our implementation functions exclusively as a FIX initiator (not an acceptor).
Based on our internal analysis and logs, this issue appears to occurs periodically under high message throughput, specifically when multiple simultaneous messagss are received at nearly the same time. What makes this behavior particularly unusual is that it tends to happen during the reception of certain message types — specifically messages with the following criteria:
MsgType (35) = 8 (Execution Report)
ExecType (150) = F (Trade Cancel)
Although the root cause remains unclear, our theory is that when multiple messages of this type are received concurrently, a race condition or message parsing conflict may occur within the QuickFIX/n engine, resulting in the temporary “Incorrect BeginString” error and subsequent disconnects.
Here is all information needed to replicate our issue:
Incoming Message:
8=FIX.4.4�9=383�35=8�34=5�49=FIXBRIDGETT�52=20250904-09:01:09.727�56=EVV-VMD-TST�128=VDM�1=786381253695�6=102.34�11=ORD.59.0�14=144.099837�15=CHF�17=OTR252470000231�22=4�31=102.34�32=1.40805�37=AUF250825-13328158�39=1�40=1�48=CH03481111111�54=D�55=CH0348067338�59=1�60=20250903-09:00:19.000�64=20250905�75=20250903�150=F�151=0.000163�152=144.1000000�423=2�526=AUF250825-13328158�528=R�10=116�
Outgoing Message:
8=FIX.4.4�35=5�34=2�49=EVV-VMD-TST�52=20250904-09:01:09.791�56=FIXBRIDGETT�58=Incorrect BeginString (FIX.4.4)�
Initiator.cfg :
[DEFAULT]
ConnectionType=initiator
ReconnectInterval=30
FileStorePath=store
FileLogPath=log
StartTime=00:00:00
EndTime=23:59:59
UseDataDictionary=Y
DataDictionary=specs/FIX44.xml
SocketConnectHost=1.1.1.1
SocketConnectPort=8080
ResetOnLogon=Y
ResetOnDisconnect=Y
[SESSION]
BeginString=FIX.4.4
SenderCompID=EVV-VMD-TST
TargetCompID=FIXBRIDGETT
HeartBtInt=30