{"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":"exception","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/900007c48045867e7f44b0f9bc55ad9dbe99ee0d/crates/atuin/src/command/client/update.rs#L26-L62","documentation":"Even when an installer receipt exists, `atuin update` verifies that the currently running executable is the one the installer placed. If the running binary path does not match the receipt's install prefix, the updater refuses, since updating the installed copy would not update (and could confuse) the copy actually running.","triggerScenarios":"Running `atuin update` while executing a different atuin binary than the installer-installed one - e.g. a cargo-built copy earlier in PATH while an installer copy also exists.","commonSituations":"Multiple installs (brew + installer, cargo + installer), PATH shadowing, moving/renaming the installed binary, or running atuin from a build directory.","solutions":["Find all copies: `which -a atuin` and remove or shadow the non-installer ones","Run the installer-installed binary directly, or fix PATH order so it wins","Reinstall with the standalone installer to refresh the receipt and binary together"],"exampleFix":"// before\n# cargo bin shadows installer copy in PATH\nexport PATH=\"$HOME/.cargo/bin:$PATH\"\n// after\nexport PATH=\"$PATH:$HOME/.cargo/bin\"   # installer copy found first\natuin update","handlingStrategy":"validation","validationCode":"let exe = std::env::current_exe()?;\nprintln!(\"running: {}\", exe.display());\n// confirm this matches the receipt install prefix before updating\n","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep only one atuin installation; check with `which -a atuin`","Avoid mixing installer and cargo/brew installs on one machine","Fix PATH ordering so the intended binary wins"],"tags":["cli","update","multiple-installs"],"backgroundTag":"invalid-state-transition","analyzedSha":"900007c48045867e7f44b0f9bc55ad9dbe99ee0d","analyzedAt":"2026-09-19T12:52:51.491Z","contentChangedAt":"2026-09-19T12:52:51.491Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}