{"record":{"id":"3c23b4d2373b039b","repo":"jdx/mise","slug":"tool-does-not-have-an-executable-named","errorCode":null,"errorMessage":"Tool '{}' does not have an executable named '{}'","messagePattern":"Tool '(.+?)' does not have an executable named '(.+?)'","errorType":"exception","errorClass":"eyre::Report","httpStatus":null,"severity":"error","filePath":"src/cli/tool_stub.rs","lineNumber":601,"sourceCode":"                for p in btp {\n                    path_env.add(p);\n                }\n            }\n            env.insert(crate::env::PATH_KEY.to_string(), path_env.to_string());\n\n            crate::cli::exec::exec_program(bin_path, args, env, &Default::default(), false).await\n        }\n        Err(e) => match e {\n            BinPathError::ToolNotFound(tool_name) => {\n                bail!(\"Tool '{}' not found\", tool_name);\n            }\n            BinPathError::BinNotFound {\n                tool_name,\n                bin,\n                available_bins,\n            } => {\n                if available_bins.is_empty() {\n                    bail!(\n                        \"Tool '{}' does not have an executable named '{}'\",\n                        tool_name,\n                        bin\n                    );\n                } else {\n                    bail!(\n                        \"Tool '{}' does not have an executable named '{}'. Available executables: {}\",\n                        tool_name,\n                        bin,\n                        available_bins.join(\", \")\n                    );\n                }\n            }\n        },\n    }\n}\n\n/// Execute a tool stub","sourceCodeStart":583,"sourceCodeEnd":619,"githubUrl":"https://github.com/jdx/mise/blob/9dcfcaa0dc8747a2577d3270b69bb9d8313b2807/src/cli/tool_stub.rs#L583-L619","documentation":"A mise shim ran, the referenced tool IS installed, but the requested executable name is not among the tool's bins — BinPathError::BinNotFound with an empty available-bins list (src/cli/tool_stub.rs:601). The tool's install directory exposes no executables for mise to dispatch to.","triggerScenarios":"Executing a shim whose name doesn't match any bin the installed tool version ships (e.g. a hand-created shim or renamed bin); tool version installed but broken/partial so its bin directory is empty.","commonSituations":"Custom shims created with `mise generate`/manually pointing at a nonexistent bin; tool upgraded and the old binary name dropped; corrupted install where the bin directory is empty.","solutions":["Inspect what the install actually ships: `ls \"$(mise where <tool> 2>/dev/null || echo ~/.local/share/mise/installs/<tool>/<version>)\"/bin`","Reinstall the tool version: `mise uninstall <tool>@<version> && mise install <tool>@<version>`","Remove/recreate the stale shim (`mise prune` or regenerate shims) if it references a bin that no longer exists"],"exampleFix":"# before\n$ mise x terraform -- tf\n# error: Tool 'terraform' does not have an executable named 'tf'\n\n# after\n$ ls ~/.local/share/mise/installs/terraform/*/bin   # see real bin name 'terraform'\n$ mise x terraform -- terraform","handlingStrategy":"validation","validationCode":"tool=\"terraform\"; bin=\"terraform\"\ninst=\"$(mise where \"$tool\" 2>/dev/null)\" || { mise install \"$tool\"; inst=\"$(mise where \"$tool\")\"; }\n[ -x \"$inst/bin/$bin\" ] || { echo \"$tool has no bin '$bin'\" >&2; exit 1; }\n\"$inst/bin/$bin\" -version","typeGuard":null,"tryCatchPattern":"mise x \"$tool\" -- \"$bin\" \"$@\" || { echo \"bin '$bin' missing — inspect $(mise where $tool)/bin and reinstall if empty\" >&2; exit 1; }","preventionTips":["Verify the install's bin directory after installing tools that are known to rename binaries","Reinstall on version bumps rather than reusing possibly-partial installs"],"tags":["mise","shims","tool-stub","executable","bin-name"],"backgroundTag":"executable-not-in-package","analyzedSha":"9dcfcaa0dc8747a2577d3270b69bb9d8313b2807","analyzedAt":"2026-08-17T14:28:50.624Z","schemaVersion":2},"datasetVersion":"2026-08-21T13:17:26.733Z"}