zed-industries/zed · error

Autoupdate failed, rollback successful

Error message

Autoupdate failed, rollback successful

What it means

A job failed after at least one earlier job succeeded, and the reverse rollback of all completed jobs succeeded. The previous version should be fully restored; this bail reports the failed update with a clean prior state.

Source

Thrown at crates/auto_update_helper/src/updater.rs:426

    if last_successful_job
        .map(|job| job != JOBS.len() - 1)
        .unwrap_or(true)
    {
        let Some(last_successful_job) = last_successful_job else {
            anyhow::bail!("Autoupdate failed, nothing to rollback");
        };

        for job in (0..=last_successful_job).rev() {
            let job = &JOBS[job];
            if let Err(e) = (job.rollback)(app_dir) {
                anyhow::bail!(
                    "Job rollback failed, the app might be left in an inconsistent state: ({:?})",
                    e
                );
            }
        }

        anyhow::bail!("Autoupdate failed, rollback successful");
    }

    if launch {
        #[allow(clippy::disallowed_methods, reason = "doesn't run in the main binary")]
        let _ = std::process::Command::new(app_dir.join("Zed.exe")).spawn();
    }
    log::info!("Update completed successfully");
    Ok(())
}

#[cfg(test)]
mod test {
    use super::perform_update;

    #[test]
    fn test_perform_update() {
        let app_dir = tempfile::tempdir().unwrap();
        let app_dir = app_dir.path();

View on GitHub (pinned to bc538def45)

Solutions

  1. Restart Zed (it is running the rolled-back old version) and retry the update.
  2. Close other Zed/remote-server processes and pause antivirus scanning before retrying.
  3. If it recurs, capture the helper log and report; a manual zed.dev install also works.
Defensive patterns

Strategy: fallback

Try / catch

on this message, restart the app on the rolled-back version and retry the update later; no repair is needed since rollback succeeded.

Prevention

When it happens

Trigger: Any mid-sequence job failure (locked file, permission, or timeout after 2s of retries) followed by successful rollback of jobs 0..=last_successful_job.

Common situations: Transient copy failures mid-sequence - a process re-acquiring locks, brief permission issues, antivirus scanning - after earlier jobs already applied.

Related errors


AI-assisted analysis of zed-industries/zed@bc538def45 (2026-08-16). Data as JSON: /api/errors/89c73aed8b1ded35. Report an issue: GitHub.