diff --git a/piker/brokers/ib.py b/piker/brokers/ib.py index 2e0b92cb..e94fd561 100644 --- a/piker/brokers/ib.py +++ b/piker/brokers/ib.py @@ -1400,7 +1400,7 @@ async def trades_dialogue( # mark msg as from "external system" # TODO: probably something better then this.. and start # considering multiplayer/group trades tracking - msg['external'] = True + msg.external = True continue # XXX: we always serialize to a dict for msgpack diff --git a/piker/ui/order_mode.py b/piker/ui/order_mode.py index da775821..1535f458 100644 --- a/piker/ui/order_mode.py +++ b/piker/ui/order_mode.py @@ -399,7 +399,12 @@ async def start_order_mode( # each clearing tick is responded individually elif resp in ('broker_filled',): - action = book._sent_orders[oid].action + known_order = book._sent_orders.get(oid) + if not known_order: + log.warning(f'order {oid} is unknown') + continue + + action = known_order.action details = msg['brokerd_msg'] # TODO: some kinda progress system