{"record":{"id":"ece57b3c7290afe8","repo":"nautechsystems/nautilus_trader","slug":"timeout-waiting-for-account-account-id-to-be-reg-ece57b","errorCode":null,"errorMessage":"Timeout waiting for account {account_id} to be registered after {timeout_secs}s","messagePattern":"Timeout waiting for account (.+?) to be registered after (.+?)s","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/adapters/kraken/src/execution/futures.rs","lineNumber":531,"sourceCode":"        if self.core.cache().account(&account_id).is_some() {\n            log::info!(\"Account {account_id} registered\");\n            return Ok(());\n        }\n\n        let start = Instant::now();\n        let timeout = Duration::from_secs_f64(timeout_secs);\n        let interval = Duration::from_millis(10);\n\n        loop {\n            tokio::time::sleep(interval).await;\n\n            if self.core.cache().account(&account_id).is_some() {\n                log::info!(\"Account {account_id} registered\");\n                return Ok(());\n            }\n\n            if start.elapsed() >= timeout {\n                anyhow::bail!(\n                    \"Timeout waiting for account {account_id} to be registered after {timeout_secs}s\"\n                );\n            }\n        }\n    }\n\n    fn modify_single_order(&self, cmd: &ModifyOrder) {\n        let client_order_id = cmd.client_order_id;\n        let venue_order_id = cmd.venue_order_id;\n        let strategy_id = cmd.strategy_id;\n        let instrument_id = cmd.instrument_id;\n        let quantity = cmd.quantity;\n        let price = cmd.price;\n\n        log::debug!(\n            \"Modifying order: venue_order_id={venue_order_id:?}, client_order_id={client_order_id}\"\n        );\n","sourceCodeStart":513,"sourceCodeEnd":549,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/adapters/kraken/src/execution/futures.rs#L513-L549","documentation":"After connecting, the Kraken Futures execution client waits for its account to be generated and registered in the cache (normally via an account-state/balance update from the venue). `await_account_registered` polls the cache and bails with this timeout error if the account never appears within `timeout_secs`.","triggerScenarios":"`connect` on the Kraken Futures exec client where no account update arrives before the timeout — e.g. WS auth failure, no funds on the Futures account, or a stalled WebSocket connection.","commonSituations":"Invalid or expired Futures API keys, network/proxy blocking the WS feed, account not yet provisioned, or a too-short configured timeout on a slow connection.","solutions":["Verify Futures API key/secret are correct and WS authentication succeeds (check logs for auth errors)","Increase the account-registration timeout in the client config","Confirm the Futures account has an accessible balance and is fully provisioned on Kraken","Check network/firewall access to Kraken Futures WebSocket endpoints"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"match connect_result {\n    Err(e) if e.to_string().contains(\"Timeout waiting for account\") => {\n        log::warn!(\"account registration timed out; verifying WS auth and retrying\");\n        verify_ws_auth()?;\n        connect_with_longer_timeout()?;\n    }\n    r => r?,\n}","preventionTips":["Increase the account-registration timeout for slow or remote connections","Log WS auth results so silent auth failures are visible","Confirm the Futures account is funded and provisioned before running live clients","Monitor connect latency and alert before the timeout fires"],"tags":["rust","kraken-futures","timeout","account-registration","websocket"],"backgroundTag":"request-timeout","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"}