{"record":{"id":"1729464a83f45a3b","repo":"zed-industries/zed","slug":"could-not-auto-update-because-the-required-rsync-u","errorCode":null,"errorMessage":"Could not auto-update because the required rsync utility was not found.","messagePattern":"Could not auto-update because the required rsync utility was not found\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/auto_update/src/auto_update.rs","lineNumber":876,"sourceCode":"                    current_version,\n                    fetched_version,\n                ))\n            }\n        }\n    }\n\n    fn check_dependencies() -> Result<()> {\n        #[cfg(target_os = \"linux\")]\n        if which::which(\"rsync\").is_err() {\n            let install_hint = linux_rsync_install_hint();\n            return Err(MissingDependencyError(format!(\n                \"rsync is required for auto-updates but is not installed. {install_hint}\"\n            ))\n            .into());\n        }\n\n        #[cfg(target_os = \"macos\")]\n        anyhow::ensure!(\n            which::which(\"rsync\").is_ok(),\n            \"Could not auto-update because the required rsync utility was not found.\"\n        );\n\n        Ok(())\n    }\n\n    async fn target_path(installer_dir: &InstallerDir) -> Result<PathBuf> {\n        let filename = match OS {\n            \"macos\" => anyhow::Ok(\"Zed.dmg\"),\n            \"linux\" => Ok(\"zed.tar.gz\"),\n            \"windows\" => Ok(\"Zed.exe\"),\n            unsupported_os => anyhow::bail!(\"not supported: {unsupported_os}\"),\n        }?;\n\n        Ok(installer_dir.path().join(filename))\n    }\n","sourceCodeStart":858,"sourceCodeEnd":894,"githubUrl":"https://github.com/zed-industries/zed/blob/bc538def4545534201bbfcac4e95ac34ea6501b6/crates/auto_update/src/auto_update.rs#L858-L894","documentation":"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.","triggerScenarios":"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.","commonSituations":"GUI processes inheriting a PATH without /usr/bin; rsync uninstalled or blocked by endpoint protection; unusual macOS configurations after system modification.","solutions":["Verify rsync exists: run `which -a rsync` and `/usr/bin/rsync --version` in a terminal.","Install it if missing: `brew install rsync` and ensure the Homebrew bin dir is on PATH for GUI-launched apps.","Launch Zed normally (Finder/Spotlight) so it inherits the standard system PATH.","If rsync cannot be restored, download the update manually from zed.dev and replace the app."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if cfg!(target_os = \"macos\") && which::which(\"rsync\").is_err() {\n    // install rsync or fall back to a manual update before calling the updater\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep /usr/bin on PATH for GUI-launched apps","brew install rsync on stripped systems","Check dependencies before starting an update flow, not after the download"],"tags":["macos","rsync","dependency","auto-update","path"],"backgroundTag":null,"analyzedSha":"bc538def4545534201bbfcac4e95ac34ea6501b6","analyzedAt":"2026-08-16T07:30:46.435Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}