zeroclaw-labs/zeroclaw · error · anyhow::Error

Update rolled back — smoke test failed: {e}

Error message

Update rolled back — smoke test failed: {e}

What it means

Error "Update rolled back — smoke test failed: {e}" thrown in zeroclaw-labs/zeroclaw.

Source

Thrown at src/commands/update.rs:316

            // the validated main binary is already in place and must not be
            // rolled back if these fail.
            install_companion_artifacts(&staging, &current_exe, &host_dashboard_candidates()).await;
            println!("{}", update_success_message(&update_info.latest_version));
            println!("{}", prebuilt_channel_note_message());
            Ok(())
        }
        Err(e) => {
            ::zeroclaw_log::record!(
                WARN,
                ::zeroclaw_log::Event::new(module_path!(), ::zeroclaw_log::Action::Note)
                    .with_outcome(::zeroclaw_log::EventOutcome::Unknown)
                    .with_attrs(::serde_json::json!({"error": format!("{}", e)})),
                "Smoke test failed, rolling back"
            );
            rollback_binary(&backup_path, &current_exe)
                .await
                .context("rollback after smoke test failure")?;
            bail!("Update rolled back — smoke test failed: {e}");
        }
    }
}

fn find_asset_url(release: &serde_json::Value) -> Option<String> {
    let target = current_target_triple()?;

    release["assets"].as_array()?.iter().find_map(|asset| {
        let name = asset["name"].as_str()?;
        if !is_installable_release_asset(name, target) {
            return None;
        }
        let url = asset["browser_download_url"].as_str()?.trim();
        (!url.is_empty()).then(|| url.to_string())
    })
}

fn find_sha256sums_url(release: &serde_json::Value) -> Option<String> {

View on GitHub (pinned to 88bb9c8533)

Solutions

  1. Check why the smoke test failed (missing config, port conflict, missing features), fix it, and retry the update.
  2. Stay on the rolled-back version and report the smoke test failure with logs if it persists.

When it happens

Trigger: Thrown at src/commands/update.rs:316 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of zeroclaw-labs/zeroclaw@88bb9c8533 (2026-08-23). Data as JSON: /api/errors/f6e378b1f1753e71. Report an issue: GitHub.