From d1eec24ed5157ce4ae703dda9fd0a5f3b27ae606 Mon Sep 17 00:00:00 2001 From: goodboy Date: Wed, 15 Apr 2026 19:05:46 -0400 Subject: [PATCH] Fall back to `con.exchange` in IB ledger fill loop Use `con.primaryExchange or con.exchange` so `pexch` is populated even when `primaryExchange` is empty (e.g. for certain combo/forex fills). (this commit msg was generated in some part by [`claude-code`][claude-code-gh]) [claude-code-gh]: https://github.com/anthropics/claude-code --- piker/brokers/ib/ledger.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/piker/brokers/ib/ledger.py b/piker/brokers/ib/ledger.py index d8510f8b..31dc4ab9 100644 --- a/piker/brokers/ib/ledger.py +++ b/piker/brokers/ib/ledger.py @@ -501,7 +501,7 @@ async def update_ledger_from_api_trades( for fill in fills: con: Contract = fill.contract conid: str = con.conId - pexch: str | None = con.primaryExchange + pexch: str|None = con.primaryExchange or con.exchange if not pexch: cons = await client.get_con(conid=conid)