nautechsystems/nautilus_trader · error
Timeout waiting for account {account_id} to be registered af
Error message
Timeout waiting for account {account_id} to be registered after {timeout_secs}s What it means
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`.
Source
Thrown at crates/adapters/kraken/src/execution/futures.rs:531
if self.core.cache().account(&account_id).is_some() {
log::info!("Account {account_id} registered");
return Ok(());
}
let start = Instant::now();
let timeout = Duration::from_secs_f64(timeout_secs);
let interval = Duration::from_millis(10);
loop {
tokio::time::sleep(interval).await;
if self.core.cache().account(&account_id).is_some() {
log::info!("Account {account_id} registered");
return Ok(());
}
if start.elapsed() >= timeout {
anyhow::bail!(
"Timeout waiting for account {account_id} to be registered after {timeout_secs}s"
);
}
}
}
fn modify_single_order(&self, cmd: &ModifyOrder) {
let client_order_id = cmd.client_order_id;
let venue_order_id = cmd.venue_order_id;
let strategy_id = cmd.strategy_id;
let instrument_id = cmd.instrument_id;
let quantity = cmd.quantity;
let price = cmd.price;
log::debug!(
"Modifying order: venue_order_id={venue_order_id:?}, client_order_id={client_order_id}"
);
View on GitHub (pinned to 18893faf8b)
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
Defensive patterns
Strategy: retry
Try / catch
match connect_result {
Err(e) if e.to_string().contains("Timeout waiting for account") => {
log::warn!("account registration timed out; verifying WS auth and retrying");
verify_ws_auth()?;
connect_with_longer_timeout()?;
}
r => r?,
} Prevention
- 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
When it happens
Trigger: `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.
Common situations: 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.
Understand the failure class
Background: Request timed out: what client-side request timeouts mean across libraries (Request timed out, TIMED_OUT, APITimeoutError) — this error's family across 39 libraries.
- Timeouts: ETIMEDOUT, deadlines, and hung requests — what actually expires when a request times out.
Related errors
- Timeout waiting for account {account_id} to be registered af
- Timeout waiting for account {account_id} to be registered af
- Timeout waiting for account {account_id} to be registered af
- Timeout waiting for account {account_id} to be registered af
- Lighter WebSocket handler did not stop after abort
AI-assisted analysis of nautechsystems/nautilus_trader@18893faf8b (2026-09-08).
Data as JSON: /api/errors/ece57b3c7290afe8.
Report an issue: GitHub.