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, ¤t_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, ¤t_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
- Check why the smoke test failed (missing config, port conflict, missing features), fix it, and retry the update.
- 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.