nautechsystems/nautilus_trader · error

startup reconciliation failed: {e}; failed to finalize start

Error message

startup reconciliation failed: {e}; failed to finalize startup abort: {finalize_err}

What it means

Composite failure during startup: the initial reconciliation step failed, and the subsequent attempt to cleanly abort/finalize the aborted startup also failed; both errors are reported because the node may be left in a partially started state.

Source

Thrown at crates/live/src/node/mod.rs:484

                        anyhow::anyhow!("readiness timeout while waiting for engine connections"),
                    )
                    .await;
            }
            EngineConnectionStatus::StopRequested => {
                self.abort_startup("Stop signal received during startup")
                    .await?;
                return Ok(());
            }
            EngineConnectionStatus::ShutdownRequested => {
                self.abort_startup("Shutdown signal received during startup")
                    .await?;
                return Ok(());
            }
        }

        if let Err(e) = self.perform_startup_reconciliation().await {
            if let Err(finalize_err) = self.abort_startup("Startup reconciliation failed").await {
                anyhow::bail!(
                    "startup reconciliation failed: {e}; failed to finalize startup abort: {finalize_err}"
                );
            }

            return Err(e);
        }

        if let Some(reason) = self.startup_abort_reason() {
            self.abort_startup(reason).await?;
            return Ok(());
        }

        if let Err(e) = self.kernel.start_trader() {
            return self.abort_after_trader_start_failure(e).await;
        }
        #[cfg(feature = "plugin")]
        if let Err(e) = self.plugins.start_controllers() {
            return self.abort_after_trader_start_failure(e).await;

View on GitHub (pinned to 18893faf8b)

Solutions

  1. Inspect the reconciliation error and fix the underlying exec client/data issue
  2. Manually stop or dispose the node if the abort failed, since state may be inconsistent
  3. Check exec client connectivity and account access before restarting
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at crates/live/src/node/mod.rs:484 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of nautechsystems/nautilus_trader@18893faf8b (2026-09-08). Data as JSON: /api/errors/f66a8028f0551e62. Report an issue: GitHub.