{"record":{"id":"4d91f649b3ec18a3","repo":"nautechsystems/nautilus_trader","slug":"binancefutureswebsocketclient-requires-usdm-or-coi","errorCode":null,"errorMessage":"BinanceFuturesWebSocketClient requires UsdM or CoinM product type, was {product_type:?}","messagePattern":"BinanceFuturesWebSocketClient requires UsdM or CoinM product type, was (.+?)","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/adapters/binance/src/futures/websocket/streams/client.rs","lineNumber":139,"sourceCode":"    ///\n    /// # Errors\n    ///\n    /// Returns an error if:\n    /// - `product_type` is not a futures type (UsdM or CoinM).\n    /// - Credential creation fails.\n    pub fn new(\n        product_type: BinanceProductType,\n        environment: BinanceEnvironment,\n        api_key: Option<String>,\n        api_secret: Option<String>,\n        url_override: Option<String>,\n        heartbeat: Option<u64>,\n        transport_backend: TransportBackend,\n    ) -> anyhow::Result<Self> {\n        match product_type {\n            BinanceProductType::UsdM | BinanceProductType::CoinM => {}\n            _ => {\n                anyhow::bail!(\n                    \"BinanceFuturesWebSocketClient requires UsdM or CoinM product type, was {product_type:?}\"\n                );\n            }\n        }\n\n        let url =\n            url_override.unwrap_or_else(|| get_ws_base_url(product_type, environment).to_string());\n\n        let credential = match (api_key, api_secret) {\n            (Some(key), Some(secret)) => Some(Arc::new(SigningCredential::new(key, secret))),\n            _ => None,\n        };\n\n        Ok(Self {\n            url,\n            product_type,\n            credential,\n            heartbeat,","sourceCodeStart":121,"sourceCodeEnd":157,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/a4b06ed870971b5671d12754ea138a3ab99b1dec/crates/adapters/binance/src/futures/websocket/streams/client.rs#L121-L157","documentation":"Error \"BinanceFuturesWebSocketClient requires UsdM or CoinM product type, was {product_type:?}\" thrown in nautechsystems/nautilus_trader.","triggerScenarios":"Thrown at crates/adapters/binance/src/futures/websocket/streams/client.rs:139 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a4b06ed870971b5671d12754ea138a3ab99b1dec","analyzedAt":"2026-08-16T22:54:50.089Z","schemaVersion":2},"datasetVersion":"2026-08-16T23:17:17.608Z"}