zed-industries/zed · error

Could not auto-update because the required rsync utility was

Error message

Could not auto-update because the required rsync utility was not found.

What it means

On macOS, the auto-installer syncs the new app bundle with rsync; check_dependencies verifies rsync is resolvable on PATH via which::which and aborts the update with this message when it is not. macOS ships /usr/bin/rsync by default, so absence usually means a sanitized PATH in the GUI environment or a removed/modified system.

Source

Thrown at crates/auto_update/src/auto_update.rs:876

                    current_version,
                    fetched_version,
                ))
            }
        }
    }

    fn check_dependencies() -> Result<()> {
        #[cfg(target_os = "linux")]
        if which::which("rsync").is_err() {
            let install_hint = linux_rsync_install_hint();
            return Err(MissingDependencyError(format!(
                "rsync is required for auto-updates but is not installed. {install_hint}"
            ))
            .into());
        }

        #[cfg(target_os = "macos")]
        anyhow::ensure!(
            which::which("rsync").is_ok(),
            "Could not auto-update because the required rsync utility was not found."
        );

        Ok(())
    }

    async fn target_path(installer_dir: &InstallerDir) -> Result<PathBuf> {
        let filename = match OS {
            "macos" => anyhow::Ok("Zed.dmg"),
            "linux" => Ok("zed.tar.gz"),
            "windows" => Ok("Zed.exe"),
            unsupported_os => anyhow::bail!("not supported: {unsupported_os}"),
        }?;

        Ok(installer_dir.path().join(filename))
    }

View on GitHub (pinned to bc538def45)

Solutions

  1. Verify rsync exists: run `which -a rsync` and `/usr/bin/rsync --version` in a terminal.
  2. Install it if missing: `brew install rsync` and ensure the Homebrew bin dir is on PATH for GUI-launched apps.
  3. Launch Zed normally (Finder/Spotlight) so it inherits the standard system PATH.
  4. If rsync cannot be restored, download the update manually from zed.dev and replace the app.
Defensive patterns

Strategy: validation

Validate before calling

if cfg!(target_os = "macos") && which::which("rsync").is_err() {
    // install rsync or fall back to a manual update before calling the updater
}

Prevention

When it happens

Trigger: An auto-update on macOS where which::which("rsync") returns Err - Zed launched from a launcher/service with a minimal PATH, /usr/bin/rsync deleted, or security tooling blocking execution.

Common situations: GUI processes inheriting a PATH without /usr/bin; rsync uninstalled or blocked by endpoint protection; unusual macOS configurations after system modification.

Related errors


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