Repository navigation
v0.3.8
Fixed
Order.reasonnow populated on failure: All exchange OMS implementations (Binance, Bybit, OKX, Bitget, HyperLiquid) now set theOrder.reasonfield when creatingFAILEDorCANCEL_FAILEDorders. Previously the error message was only logged and discarded — strategies receivingon_failed_order/on_cancel_failed_ordercallbacks always saworder.reason = None. The field is now populated from the exchange error response (REST exceptions, WS API errors, batch order individual failures).
Usage
def on_failed_order(self, order: Order):
self.log.error(f"Order {order.oid} failed: {order.reason}")
def on_cancel_failed_order(self, order: Order):
self.log.error(f"Cancel {order.oid} failed: {order.reason}")Full Changelog: v0.3.7...v0.3.8