{"record":{"id":"b6d7dccc7ca73eb9","repo":"nautechsystems/nautilus_trader","slug":"startup-reconciliation-timeout-reached","errorCode":null,"errorMessage":"Startup reconciliation timeout reached","messagePattern":"Startup reconciliation timeout reached","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/live/src/node/mod.rs","lineNumber":867,"sourceCode":"        log_info!(\n            \"Starting execution state reconciliation...\",\n            color = LogColor::Blue\n        );\n\n        let lookback_mins = self\n            .config\n            .exec_engine\n            .reconciliation_lookback_mins\n            .map(u64::from);\n\n        let timeout = self.config.timeout_reconciliation;\n        let start = dst::time::Instant::now();\n        let client_ids = self.kernel.exec_engine.borrow().client_ids();\n\n        for client_id in client_ids {\n            let elapsed = start.elapsed();\n            if elapsed >= timeout {\n                anyhow::bail!(\"Startup reconciliation timeout reached\");\n            }\n            let remaining = timeout\n                .checked_sub(elapsed)\n                .expect(\"elapsed checked against reconciliation timeout\");\n\n            log_info!(\n                \"Requesting mass status from {}...\",\n                client_id,\n                color = LogColor::Blue\n            );\n\n            let mass_status_result = dst::time::timeout(remaining, async {\n                self.kernel\n                    .exec_engine\n                    .borrow_mut()\n                    .generate_mass_status(&client_id, lookback_mins)\n                    .await\n            })","sourceCodeStart":849,"sourceCodeEnd":885,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/live/src/node/mod.rs#L849-L885","documentation":"Startup watchdog in perform_startup_reconciliation: per-client reconciliation did not complete within the configured timeout_reconciliation duration, so startup is aborted rather than continuing with unreconciled execution state.","triggerScenarios":"Thrown at crates/live/src/node/mod.rs:867 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Increase timeout_reconciliation in the node config","Investigate slow venue responses or network latency for the offending client","Reduce reconciliation_lookback_mins to shrink the reconciliation workload"],"exampleFix":null,"handlingStrategy":"retry","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"}