{"record":{"id":"2e71ffdd409311f1","repo":"nautechsystems/nautilus_trader","slug":"unsupported-quote-quantity","errorCode":"UNSUPPORTED_QUOTE_QUANTITY","errorMessage":"UNSUPPORTED_QUOTE_QUANTITY","messagePattern":"UNSUPPORTED_QUOTE_QUANTITY","errorType":"error_code","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/adapters/interactive_brokers/src/execution/core_orders.rs","lineNumber":70,"sourceCode":"            .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,\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!(\"UNSUPPORTED_QUOTE_QUANTITY\");\n        }\n\n        if matches!(\n            cmd.order_init.order_type,\n            OrderType::TrailingStopMarket | OrderType::TrailingStopLimit\n        ) && let Some(trailing_offset_type) = cmd.order_init.trailing_offset_type\n            && trailing_offset_type != TrailingOffsetType::Price\n        {\n            let ts_event = clock.get_time_ns();\n            let reason = format!(\n                \"`TrailingOffsetType` {:?} is not supported (only PRICE is supported)\",\n                trailing_offset_type\n            );\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,","sourceCodeStart":52,"sourceCodeEnd":88,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/adapters/interactive_brokers/src/execution/core_orders.rs#L52-L88","documentation":"handle_submit_order_async denies the order because quote_quantity=true was set on a non-inverse instrument; the Interactive Brokers adapter only sizes orders in base currency for non-inverse instruments, so a quote-denominated quantity cannot be submitted and an OrderDenied event with reason UNSUPPORTED_QUOTE_QUANTITY is emitted instead of an error return.","triggerScenarios":"Thrown at crates/adapters/interactive_brokers/src/execution/core_orders.rs:70 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set quote_quantity=false and specify the order size in base currency for non-inverse instruments.","Convert the desired notional to a base quantity using the current price before submitting.","Use an inverse instrument if quote-denominated sizing is genuinely required."],"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"}