{"record":{"id":"2082479b5a162f9d","repo":"nautechsystems/nautilus_trader","slug":"unsupported-order-type-for-coinbase-other","errorCode":null,"errorMessage":"Unsupported order type for Coinbase: {other}","messagePattern":"Unsupported order type for Coinbase: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/adapters/coinbase/src/http/client.rs","lineNumber":1717,"sourceCode":"                    },\n                })),\n                TimeInForce::Gtd => {\n                    let expire = expire_time\n                        .ok_or_else(|| anyhow::anyhow!(\"GTD STOP_LIMIT requires expire_time\"))?;\n                    Ok(OrderConfiguration::StopLimitGtd(StopLimitGtd {\n                        stop_limit_stop_limit_gtd: StopLimitGtdParams {\n                            base_size: qty,\n                            limit_price,\n                            stop_price,\n                            stop_direction: direction,\n                            end_time: format_rfc3339_from_nanos(expire)?,\n                        },\n                    }))\n                }\n                _ => anyhow::bail!(\"Unsupported TIF {time_in_force} for STOP_LIMIT on Coinbase\"),\n            }\n        }\n        other => anyhow::bail!(\"Unsupported order type for Coinbase: {other}\"),\n    }\n}\n\n#[cfg(test)]\nmod tests {\n    use rstest::rstest;\n\n    use super::*;\n\n    #[rstest]\n    fn test_raw_client_construction_live() {\n        let client = CoinbaseRawHttpClient::new(CoinbaseEnvironment::Live, 10, None, None).unwrap();\n        assert_eq!(client.environment(), CoinbaseEnvironment::Live);\n        assert!(!client.is_authenticated());\n    }\n\n    #[rstest]\n    fn test_raw_client_construction_sandbox() {","sourceCodeStart":1699,"sourceCodeEnd":1735,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/adapters/coinbase/src/http/client.rs#L1699-L1735","documentation":"The Coinbase order-configuration builder only implements LIMIT and STOP_LIMIT order types (plus market handled elsewhere); any other OrderType falls through to the catch-all `other` arm and is rejected. The error message echoes the unhandled OrderType value for diagnosis.","triggerScenarios":"Calling the Coinbase HTTP client's order submission with an OrderType such as StopMarket, LimitIfTouched, TrailingStopMarket, or MarketToLimit that has no builder arm.","commonSituations":"Strategy emits conditional/trailing orders naively routed to Coinbase; a generic execution engine forwards all order types without venue capability filtering; newer Nautilus order types not yet mapped in the adapter.","solutions":["Only submit Market, Limit, or StopLimit orders to Coinbase; route other types through an emulated contingent-order controller","Convert the unsupported type (e.g. StopMarket -> StopLimit) before submission","Add a builder arm if Coinbase's API has since added the order type"],"exampleFix":"// before\nclient.submit(OrderType::StopMarket, ...)\n// after\n// use OrderEmulator or convert:\nclient.submit(OrderType::StopLimit, ...) // with price + trigger","handlingStrategy":"validation","validationCode":"fn coinbase_supported_order_type(t: OrderType) -> bool {\n    matches!(t, OrderType::Market | OrderType::Limit | OrderType::StopLimit)\n}","typeGuard":null,"tryCatchPattern":"match client.submit(order).await {\n    Err(e) if e.to_string().contains(\"Unsupported order type\") => {\n        // route to OrderEmulator or convert order type\n    }\n    r => r.expect(\"submit\"),\n}","preventionTips":["Route conditional orders through an emulated order controller for venues without native support","Keep a venue capability matrix in config","Reject unsupported order types at strategy level before reaching the adapter"],"tags":["rust","coinbase","orders","unsupported-operation"],"backgroundTag":"unsupported-operation","analyzedSha":"18893faf8b356be3320add8de2f861b0b647cf06","analyzedAt":"2026-09-08T20:49:34.690Z","contentChangedAt":"2026-09-08T20:49:34.690Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}