{"record":{"id":"71ef8ac29dbaaa32","repo":"atuinsh/atuin","slug":"this-atuin-binary-is-not-the-one-the-standalo","errorCode":null,"errorMessage":"This atuin binary ({}) is not the one the standalone installer installed to {}. Are multiple copies of atuin installed?","messagePattern":"This atuin binary \\((.+?)\\) is not the one the standalone installer installed to (.+?)\\. Are multiple copies of atuin installed\\?","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/atuin/src/command/client/update.rs","lineNumber":44,"sourceCode":"\n        // The install receipt is written by the shell/powershell installers.\n        // No receipt means atuin came from a package manager, which should\n        // stay in charge of upgrades.\n        if updater.load_receipt().is_err() {\n            bail!(\n                \"`atuin update` is only available when atuin was installed via the standalone installer (https://setup.atuin.sh).\\n\\\n                 If you installed atuin with a package manager (brew, nix, pacman, cargo, ...), please update it there instead.\"\n            );\n        }\n\n        // The receipt records the version the installer wrote; trust the\n        // binary itself in case it was replaced by other means.\n        let _ = updater.set_current_version(current.parse()?);\n\n        if !updater.check_receipt_is_for_this_executable()? {\n            let current_exe = std::env::current_exe()?;\n            let receipt_prefix = updater.install_prefix_root()?;\n            bail!(\n                \"This atuin binary ({}) is not the one the standalone installer installed to {}. \\\n                 Are multiple copies of atuin installed?\",\n                current_exe.display(),\n                receipt_prefix,\n            );\n        }\n\n        let request = match (&self.version, settings.update_channel) {\n            (Some(version), _) => {\n                UpdateRequest::SpecificVersion(version.trim_start_matches('v').to_string())\n            }\n            (None, UpdateChannel::Stable) => UpdateRequest::Latest,\n            (None, UpdateChannel::Nightly) => UpdateRequest::LatestMaybePrerelease,\n        };\n        updater.configure_version_specifier(request);\n\n        let channel = match settings.update_channel {\n            UpdateChannel::Stable => \"stable\",","sourceCodeStart":26,"sourceCodeEnd":62,"githubUrl":"https://github.com/atuinsh/atuin/blob/c0c717ab04c881764bcad4b3d169a507e2432643/crates/atuin/src/command/client/update.rs#L26-L62","documentation":"Atuin's self-updater only updates the binary that the standalone installer originally placed, verified via an install receipt. This error is thrown when the currently executing atuin binary is not the one recorded in that receipt, i.e. the running executable differs from the installer-managed one. It aborts the update to avoid updating (or corrupting) the wrong installation.","triggerScenarios":"Running `atuin update` when the executing binary (std::env::current_exe) does not match the install prefix recorded in the installer receipt, per updater.check_receipt_is_for_this_executable().","commonSituations":"Installing atuin both via a package manager (apt/brew/cargo) and via the standalone install script; copying or symlink-swapping binaries; PATH resolving to an older or manually-built copy while the receipt points to ~/.atuin/bin.","solutions":["Run `which -a atuin` to find duplicate copies and remove all but one","Reinstall with the standalone installer so the receipt matches the binary you run","Invoke the installer-managed binary directly (e.g. ~/.atuin/bin/atuin update)","If you manage atuin via a package manager, use that package manager to upgrade instead of `atuin update`"],"exampleFix":"// before: PATH resolves to a cargo-installed copy\natuin update\n// after: run the installer-managed binary\n~/.atuin/bin/atuin update","handlingStrategy":"validation","validationCode":"which -a atuin   # ensure only one copy before running `atuin update`","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Install atuin via exactly one method (installer OR package manager)","Keep the installer's bin dir first (or only) on PATH","Use the package manager to upgrade if that's how you installed","Don't manually replace or move the installer-managed binary"],"tags":["update","self-updater","installation","cli"],"backgroundTag":"incompatible-source-type","analyzedSha":"c0c717ab04c881764bcad4b3d169a507e2432643","analyzedAt":"2026-09-12T07:40:01.341Z","contentChangedAt":"2026-09-12T07:40:01.341Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}