{"record":{"id":"4192717afc3e80a2","repo":"nautechsystems/nautilus_trader","slug":"post-only-not-supported-by-interactive-brokers","errorCode":null,"errorMessage":"`post_only` not supported by Interactive Brokers","messagePattern":"`post_only` not supported by Interactive Brokers","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/adapters/interactive_brokers/src/execution/core_orders.rs","lineNumber":47,"sourceCode":"        account_id: AccountId,\n        order_submit_lock: &Arc<tokio::sync::Mutex<()>>,\n    ) -> anyhow::Result<()> {\n        if cmd.order_init.post_only {\n            let ts_event = clock.get_time_ns();\n            let event = OrderDenied::new(\n                cmd.order_init.trader_id,\n                cmd.strategy_id,\n                cmd.instrument_id,\n                cmd.order_init.client_order_id,\n                Ustr::from(\"`post_only` not supported by Interactive Brokers\"),\n                UUID4::new(),\n                ts_event,\n                ts_event,\n            );\n            exec_sender\n                .send(ExecutionEvent::Order(OrderEventAny::Denied(event)))\n                .map_err(|e| anyhow::anyhow!(\"Failed to send order denied event: {e}\"))?;\n            anyhow::bail!(\"`post_only` not supported by Interactive Brokers\");\n        }\n\n        let is_inverse = instrument_provider\n            .find(&cmd.instrument_id)\n            .map(|instrument| instrument.is_inverse())\n            .unwrap_or(false);\n\n        if cmd.order_init.quote_quantity && !is_inverse {\n            let ts_event = clock.get_time_ns();\n            let event = OrderDenied::new(\n                cmd.order_init.trader_id,\n                cmd.strategy_id,\n                cmd.instrument_id,\n                cmd.order_init.client_order_id,\n                Ustr::from(\"UNSUPPORTED_QUOTE_QUANTITY\"),\n                UUID4::new(),\n                ts_event,\n                ts_event,","sourceCodeStart":29,"sourceCodeEnd":65,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/adapters/interactive_brokers/src/execution/core_orders.rs#L29-L65","documentation":"Pre-flight denial in handle_submit_order_async: Interactive Brokers has no native post-only order flag, so an order submitted with post_only is denied locally via an OrderDenied event rather than sent to TWS/Gateway.","triggerScenarios":"Thrown at crates/adapters/interactive_brokers/src/execution/core_orders.rs:47 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Submit the order without the post_only flag","Emulate post-only behavior in the strategy, e.g. submit as LIMIT and cancel if it would cross"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"18893faf8b356be3320add8de2f861b0b647cf06","analyzedAt":"2026-09-08T20:49:34.690Z","contentChangedAt":"2026-09-08T20:49:34.690Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}