jdx/mise · error
tool not found in registry: {name}
Error message
tool not found in registry: {name} What it means
The `mise registry` command looks up a tool shorthand (e.g. `node`, `golang`) in mise's built-in registry mapping shorthands to backends. When the requested name is not a known registry entry (and the tool was also not found as an installed/known tool), the command fails fast with this bail. It is a lookup failure, not an installation failure.
Source
Thrown at src/cli/registry.rs:96
short: String,
backends: Vec<String>,
bins: Vec<String>,
description: Option<String>,
aliases: Vec<String>,
}
impl Registry {
pub(crate) async fn run(self) -> Result<()> {
if let Some(name) = &self.name {
if let Some(rt) = REGISTRY.get(name.as_str()) {
if self.json {
let tool = to_output(self.output_args(name, rt), self.security).await;
miseprintln!("{}", serde_json::to_string_pretty(&tool)?);
} else {
miseprintln!("{}", self.filter_backends(rt).join(" "));
}
} else {
bail!("tool not found in registry: {name}");
}
} else if self.complete {
self.complete()?;
} else if self.json {
self.display_json().await?;
} else {
self.display_table()?;
}
Ok(())
}
fn filter_backends(&self, rt: &RegistryTool) -> Vec<&'static str> {
if let Some(backend) = &self.backend {
rt.backends()
.into_iter()
.filter(|full| full.starts_with(&format!("{backend}:")))
.collect()
} else {View on GitHub (pinned to afd2eddd3a)
Solutions
- Check the exact registry shorthand with `mise registry` (lists all entries) and correct the name
- Use `mise search <name>` to find the closest registered tool
- Install without the registry using explicit backend syntax: `mise use github:owner/repo`, `mise use cargo:name`, `mise use aqua:owner/repo`, etc.
- If the tool is genuinely widely used, consider submitting a registry entry (note: high popularity bar, thousands of stars required)
Example fix
// before mise registry mycompanytool # tool not found in registry: mycompanytool // after mise use github:myorg/mycompanytool # or pick a registered shorthand from `mise registry`
Defensive patterns
Strategy: validation
Validate before calling
const registered = JSON.parse(child_process.execSync('mise registry --json').toString());
if (!registered.some(t => t.name === toolName)) {
throw new Error(`${toolName} has no registry shorthand; use explicit backend syntax`);
} Prevention
- Run `mise registry` once to see valid shorthands before scripting lookups
- Use `mise search` for fuzzy discovery instead of guessing names
- Prefer explicit backend syntax (github:/aqua:/cargo:) for anything not certainly in the registry
When it happens
Trigger: Running `mise registry <name>` (or `mise registry --complete`-adjacent lookups) where `<name>` is misspelled, uses an unsupported alias, or refers to a tool that must be installed via explicit backend syntax (e.g. `cargo:foo`) instead of a registry shorthand.
Common situations: Typos in tool names; tools removed or renamed in the registry; internal/company tools that were never added to the curated registry; expecting `mise registry` to know about arbitrary GitHub repos it does not map.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- {self} is in the mise tool registry but none of its backends
- tool {} not found in registry
- {}@{requested} is not installed{resolved} hint: run `mise in
- No executable found for configured tool: {bin_name} The inst
- {bin_name} is a mise bin however it is not currently active.
AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09).
Data as JSON: /api/errors/0b501f14473d5ce4.
Report an issue: GitHub.