jdx/mise · error

is not a valid plugin name

Error message

{plugin_name} is not a valid plugin name

What it means

Thrown when the plugin name supplied to a BackendArg does not exist at all — mise looked up the plugin and found nothing, so the name is not a valid plugin name. It is a name-resolution failure for plugin-managed tools.

Solutions

  1. Run `mise plugins ls-remote` to list valid plugin names and correct the typo.
  2. Install the plugin first (`mise plugin add <name>`).
  3. Use a registry backend shorthand instead of a plugin name.

Example fix

// before (mise.toml)
[tools]
nodejs = "22"   # no such plugin
// after
[tools]
node = "22"
Defensive patterns

Strategy: validation

Validate before calling

mise plugins ls-remote | grep -x <name>  # verify the plugin name exists

Try / catch

mise x <name>@<ver> -- cmd 2>&1 | grep 'not a valid plugin name' && mise plugin add <name>

Prevention

When it happens

Trigger: Running a tool command (e.g. `mise x <name>@<ver> -- cmd`) where <name> matches no installed plugin and no known plugin name.

Common situations: Typo in a plugin name in .tool-versions or mise.toml; referencing a plugin that was never installed or was removed.

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


AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17). Data as JSON: /api/errors/827aedd26f497ea6. Report an issue: GitHub.

Appendix: source

Thrown at src/cli/args/backend_arg.rs:347

                        );
                    }
                    PluginType::Vfox => {
                        bail!(
                            "vfox plugin '{plugin_name}' exists but '{tool_name}' is not available or the plugin is not properly installed"
                        );
                    }
                    PluginType::VfoxBackend => {
                        bail!(
                            "vfox-backend plugin '{plugin_name}' exists but '{tool_name}' is not available or the plugin is not properly installed"
                        );
                    }
                    PluginType::Package => {
                        bail!("package plugin '{plugin_name}' is not a tool backend");
                    }
                }
            } else {
                // Plugin doesn't exist
                bail!("{plugin_name} is not a valid plugin name");
            }
        } else {
            // Check if the tool is in the registry but has no available backends
            if let Some(rt) = REGISTRY.get(self.registry_short().as_str())
                && rt
                    .backends_for_version(self.registry_version.as_deref())
                    .is_empty()
                && !rt.backends.is_empty()
            {
                let all_backends: Vec<&str> = rt.backends.iter().map(|rb| rb.full).collect();
                bail!(
                    "{self} is in the mise tool registry but none of its backends ({}) are supported in the current configuration{}",
                    all_backends.join(", "),
                    self.registry_version
                        .as_ref()
                        .map(|v| format!(" for version {v}"))
                        .unwrap_or_default()
                );

View on GitHub (pinned to 533346cc37)