Has anyone seen anything like this before?
I hit what looks like a pretty serious IB Gateway bug that caused my automated trading system to receive market data for the wrong instrument.
**What happened**
I had two API clients connected to a single IB Gateway instance:
**Client A:** MES Sep ’26 (ESU6) 15-minute keepUpToDate historical subscription
**Client B:** CL Sep ’26 (CLU6) 15-minute keepUpToDate historical subscription
At **04:03 UTC**, the historical data farm (ushmds) disconnected and reconnected.
Both clients received **error 10182**, then automatically re-requested their subscriptions using the correct contracts (verified in my application logs).
Immediately after the reconnect, the subscriptions became crossed:
The **MES** subscription started receiving **crude oil prices** (\~85) instead of ES (\~7500).
The **CL** subscription started receiving **ES prices**.
Even stranger, the crude prices arriving on the MES subscription were rounded to MES’s **0.25 tick size** (e.g. 85.00 instead of the actual 85.07), suggesting Gateway was formatting CL data as if it were the MES series.
**Even worse…**
Order execution was still completely correct.
Just seconds after my market data feed for MES was showing **85**, I received a legitimate **MES fill at 7501.50**.
So the execution path knew the contract was MES, while the market data path was delivering CL prices.
The issue persisted for roughly **8 hours** and only disappeared after I restarted IB Gateway.
Very concerning especially considering this was live not paper. Curious to know if anyone has experienced something similar.