{"record":{"id":"52696cbc061fe7f7","repo":"jdx/mise","slug":"self-not-found-in-mise-tool-registry","errorCode":null,"errorMessage":"{self} not found in mise tool registry","messagePattern":"(.+?) not found in mise tool registry","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cli/args/backend_arg.rs","lineNumber":380,"sourceCode":"            let mise_names: HashSet<String> = suggestions.iter().cloned().collect();\n            for aqua_id in crate::aqua::aqua_registry_wrapper::aqua_suggest(&self.short) {\n                // Skip aqua suggestions whose tool name matches an existing mise suggestion\n                let name = aqua_id\n                    .rsplit_once('/')\n                    .map_or(aqua_id.as_str(), |(_, n)| n);\n                if !mise_names.contains(name) {\n                    suggestions.push(format!(\"aqua:{aqua_id}\"));\n                }\n            }\n\n            let mut msg = format!(\"{self} not found in mise tool registry\");\n            if !suggestions.is_empty() {\n                msg.push_str(\"\\n\\nDid you mean?\");\n                for s in suggestions.iter().take(5) {\n                    msg.push_str(&format!(\"\\n  {s}\"));\n                }\n            }\n            bail!(\"{msg}\");\n        }\n    }\n\n    pub fn backend_type(&self) -> BackendType {\n        // Check if this is a valid backend:tool format first\n        if let Some((backend_prefix, _tool_name)) = self.short.split_once(':')\n            && let Ok(backend_type) = backend_prefix.parse::<BackendType>()\n        {\n            return backend_type;\n        }\n\n        // Then check if this is a vfox plugin:tool format\n        // We cannot reliably determine backend type within install state so we check config first.\n        if let Some(backend_type) = plugin_backend_type(&self.short) {\n            return backend_type;\n        }\n\n        // Derive the backend type from the same resolved identifier used by","sourceCodeStart":362,"sourceCodeEnd":398,"githubUrl":"https://github.com/jdx/mise/blob/9dcfcaa0dc8747a2577d3270b69bb9d8313b2807/src/cli/args/backend_arg.rs#L362-L398","documentation":"The terminal fallback of BackendArg::backend() (src/cli/args/backend_arg.rs:380): the name produced no backend, no plugin, and no registry entry. Before bailing, mise builds a 'Did you mean?' list from close registry shorts (similarity threshold 0.8) plus aqua registry suggestions, so the correction is usually printed with the error.","triggerScenarios":"'mise use nodee@20' (typo); a bare internal/company tool name that only exists as a private repo; an npm/cargo package name used without its backend prefix; a registry short that was renamed between mise versions.","commonSituations":"Typos at the CLI; scripts assuming mise resolves every package name by default; offline installs with an old bundled registry; names copied from other managers (brew formula names, etc.).","solutions":["Read the 'Did you mean?' block and re-run with the suggested short or 'aqua:owner/repo' form","Spell the backend explicitly: 'mise use npm:<pkg>' / 'cargo:<crate>' / 'go:<module>' / 'github:owner/repo'","Search the registry: 'mise registry | grep -i <fragment>'","Update mise to pick up a larger bundled registry"],"exampleFix":"# before\nmise use nodee@20\n# Error: nodee not found in mise tool registry\n# Did you mean?\n#   node\n\n# after\nmise use node@20","handlingStrategy":"validation","validationCode":"# bash: verify the short name exists in the registry before scripting it\nmise registry 2>/dev/null | awk '{print $1}' | grep -qx \"$TOOL\" || { echo \"unknown tool: $TOOL\" >&2; exit 1; }","typeGuard":null,"tryCatchPattern":"# bash: fail loudly and show mise's own suggestions\nif ! mise use \"$TOOL\" 2>err.log; then\n  sed -n '/Did you mean?/,$p' err.log\n  exit 1\nfi","preventionTips":["Pin tools by explicit backend (aqua:owner/repo) in configs; registry shorts can change","Update mise regularly so the bundled registry grows with new tools","Run 'mise registry' when unsure of a name"],"tags":["mise","registry","unknown-tool","typo","suggestions"],"backgroundTag":"unknown-tool-name","analyzedSha":"9dcfcaa0dc8747a2577d3270b69bb9d8313b2807","analyzedAt":"2026-08-17T14:28:50.624Z","schemaVersion":2},"datasetVersion":"2026-08-21T13:17:26.733Z"}