{"record":{"id":"cdbb2c2713fcb641","repo":"jdx/mise","slug":"short-requested-is-not-installed-resolved-hin","errorCode":null,"errorMessage":"{short}@{requested} is not installed{resolved}\nhint: run `mise install {short}@{requested}`, or `mise ls {short}` to see installed versions","messagePattern":"(.+?)@(.+?) is not installed(.+?)\nhint: run `mise install (.+?)@(.+?)`, or `mise ls (.+?)` to see installed versions","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cli/which.rs","lineNumber":80,"sourceCode":"            Some((p, tv)) => {\n                if self.version {\n                    miseprintln!(\"{}\", tv.version);\n                } else if self.plugin {\n                    miseprintln!(\"{p}\");\n                } else {\n                    let path = p.which(&config, &tv, &bin_name).await?;\n                    miseprintln!(\"{}\", path.unwrap().display());\n                }\n                Ok(())\n            }\n            None => {\n                if let Some(msg) = self.uninstalled_tool_message(&config, &ts) {\n                    bail!(msg);\n                }\n                if let Some(msg) =\n                    crate::shims::unavailable_configured_tool_message(&config, &ts, &bin_name)\n                {\n                    bail!(msg);\n                }\n                if self.has_shim(&bin_name) {\n                    bail!(\n                        \"{bin_name} is a mise bin however it is not currently active. Use `mise use` to activate it in this directory.\"\n                    )\n                } else {\n                    bail!(\"{bin_name} is not a mise bin. Perhaps you need to install it first.\",)\n                }\n            }\n        }\n    }\n    async fn complete(&self, config: &Arc<Config>) -> Result<()> {\n        let ts = self.get_toolset(config).await?;\n        let bins = ts\n            .list_paths(config)\n            .await\n            .into_iter()\n            .flat_map(|p| file::ls(&p).unwrap_or_default())","sourceCodeStart":62,"sourceCodeEnd":98,"githubUrl":"https://github.com/jdx/mise/blob/afd2eddd3a50c16190efc1c7e94404b48f72af57/src/cli/which.rs#L62-L98","documentation":"A directly formatted variant of the uninstalled-tool error: `{tool}@{requested} is not installed`, with a hint to run `mise install`. which.rs found the toolset requests this exact tool/version but no matching installation exists. Thrown before mise falls back to the 'not a mise bin' message, so the user gets an actionable install hint.","triggerScenarios":"`mise which <bin>` where the resolved toolset contains `{short}@{requested}` (e.g. node@22.1.0) but that version has never been installed; also hit via shims when a project pins an uninstalled version.","commonSituations":"Cloning a repo whose mise.toml pins a specific version you don't have; a teammate upgraded the pinned version and you pulled without reinstalling; manually editing .tool-versions to a version never installed.","solutions":["Run `mise install <tool>@<requested>` exactly as shown in the hint.","Or run plain `mise install` to install everything in the current config.","Run `mise ls <tool>` to see which versions are already installed and pick one.","Update the config pin to an installed version if the old one is not needed: `mise use <tool>@<installed-version>`."],"exampleFix":"// before\nmise which python\n# 3.12.3 is not installed\n// after\nmise install python@3.12.3\nmise which python","handlingStrategy":"try-catch","validationCode":"mise ls <tool> 2>/dev/null | grep -q \"$(mise current <tool> 2>/dev/null)\" || mise install <tool>","typeGuard":null,"tryCatchPattern":"mise which \"$bin\" || { mise install && mise which \"$bin\"; }","preventionTips":["Always run `mise install` after pulling config changes (mise warns on changed config).","Pin tool versions that your team actually installs; avoid hand-editing .tool-versions to uninstalled versions."],"tags":["cli","tools","not-installed","version-pinning"],"backgroundTag":"resource-not-found","analyzedSha":"afd2eddd3a50c16190efc1c7e94404b48f72af57","analyzedAt":"2026-09-09T01:38:25.179Z","contentChangedAt":"2026-09-09T01:38:25.179Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}