jdx/mise · error

tool {} not found in registry

Error message

tool {} not found in registry

What it means

`mise search <name>` matches registry tools against the query and displays them as a table. When no registry entry matches the given name, `display_table` bails with this error before rendering. It only searches mise's curated registry — it does not search GitHub or package registries.

Source

Thrown at src/cli/search.rs:117

            Err(err) => {
                if err.kind() == std::io::ErrorKind::Interrupted {
                    // user interrupted, exit gracefully
                    Ok(())
                } else {
                    Err(eyre!(err))
                }
            }
        }
    }

    fn display_table(&self) -> Result<()> {
        let tools = self
            .get_matches()
            .into_iter()
            .map(|(short, description)| vec![short, description])
            .collect_vec();
        if tools.is_empty() {
            bail!("tool {} not found in registry", self.name.as_ref().unwrap());
        }

        let mut table = MiseTable::new(self.no_header, &["Tool", "Description"]);
        for row in tools {
            table.add_row(row);
        }
        table.print()
    }

    fn get_matches(&self) -> Vec<(String, String)> {
        let name = self.name.as_deref().unwrap_or("");
        let mut fuzzy_matcher = FuzzyMatcher::default();
        let fuzzy_pattern = FuzzyPattern::new(&name.to_lowercase());
        let mut matches = self
            .get_tools()
            .iter()
            .filter_map(|(short, rt)| {
                if name.is_empty() {

View on GitHub (pinned to afd2eddd3a)

Solutions

  1. Retry with a shorter or corrected search term (search matches substrings of shorthands and descriptions)
  2. List everything with `mise search` (empty/short term) or browse `mise registry`
  3. Install unregistered tools directly with backend syntax: `mise use aqua:owner/repo`, `mise use github:owner/repo`

Example fix

// before
mise search nodejsxyz  # tool nodejsxyz not found in registry
// after
mise search node   # lists node, nodejs-style entries
Defensive patterns

Strategy: fallback

Validate before calling

const hits = child_process.execSync(`mise search ${q}`).toString().trim();
if (!hits) console.warn(`No registry match for "${q}"; falling back to explicit backend install`);

Prevention

When it happens

Trigger: Running `mise search <name>` where no registry shorthand or description matches; misspelled tool names; searching for tools not present in the curated registry.

Common situations: Looking for niche or internal tools that are not in the registry; typos in the search term; expecting search to cover aqua/GitHub catalogs.

Understand the failure class

Background: EmptyResultError / "no results found": when an API or scraper succeeds but returns zero rows — this error's family across 9 libraries.

Related errors


AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09). Data as JSON: /api/errors/7493c2e1e32692a7. Report an issue: GitHub.