zed-industries/zed · error

failed to copy app bundle: {}

Error message

failed to copy app bundle: {}

What it means

Raised in copy_app_bundle (macOS install flow) when the `rsync -a --delete source/ destination/` command that duplicates the .app bundle fails to run. The context formats the failure with the source path; installation to /Applications cannot proceed.

Source

Thrown at crates/zed/src/zed/move_to_applications.rs:299

        .await
        .with_context(|| format!("failed to create {}", parent.display()))?;

    let mut source_with_contents: OsString = source.into();
    source_with_contents.push("/");
    let mut destination_with_contents: OsString = destination.into();
    destination_with_contents.push("/");

    let mut command = new_command("rsync");
    command
        .args(["-a", "--delete"])
        .arg(&source_with_contents)
        .arg(&destination_with_contents);
    let output = command
        .output()
        .await
        .with_context(|| format!("failed to run rsync for {}", source.display()))?;

    anyhow::ensure!(
        output.status.success(),
        "failed to copy app bundle: {}",
        String::from_utf8_lossy(&output.stderr)
    );

    Ok(())
}

fn restart_into(app_path: PathBuf, cx: &mut AsyncWindowContext) -> Result<()> {
    cx.update(|_window, cx| {
        cx.set_restart_path(app_path);
        cx.restart();
    })?;
    Ok(())
}

fn user_applications_directory() -> Option<PathBuf> {
    std::env::var_os("HOME")

View on GitHub (pinned to f4178619ac)

Solutions

  1. Check permissions in /Applications (may need admin)
  2. Ensure rsync is available and retry the move
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at crates/zed/src/zed/move_to_applications.rs:299 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of zed-industries/zed@f4178619ac (2026-08-20). Data as JSON: /api/errors/d1222127555fa04a. Report an issue: GitHub.