jdx/mise · error

{self} is in the mise tool registry but none of its backends

Error message

{self} is in the mise tool registry but none of its backends ({}) are supported in the current configuration

What it means

Bailed from BackendArg::backend() (src/cli/args/backend_arg.rs:348) when the bare short name exists in the bundled REGISTRY with raw backends, but RegistryTool::backends() - which filters by settings.disable_backends, platform match, asdf-removal on Windows, and experimental mode - returns an empty list. The message prints every rejected backend so you can see exactly what was filtered out.

Source

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

                            "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.short.as_str())
                && rt.backends().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(", ")
                );
            }

            let registry_shorts: Vec<&str> = REGISTRY.keys().collect();
            let mut suggestions: Vec<String> =
                xx::suggest::similar_n_with_threshold(&self.short, &registry_shorts, 3, 0.8)
                    .into_iter()
                    .filter(|s| *s != self.short)
                    .map(|s| s.to_string())
                    .collect();

            let mise_names: HashSet<String> = suggestions.iter().cloned().collect();
            for aqua_id in crate::aqua::aqua_registry_wrapper::aqua_suggest(&self.short) {
                // Skip aqua suggestions whose tool name matches an existing mise suggestion
                let name = aqua_id
                    .rsplit_once('/')

View on GitHub (pinned to 9dcfcaa0dc)

Solutions

  1. Enable the filtered backend: remove it from disable_backends in ~/.config/mise/config.toml, or set experimental = true when the backend is experimental
  2. Use the explicit full backend string shown in the message, e.g. 'mise use asdf:<plugin>' or the aqua id, which bypasses the filtered lookup
  3. On Windows, prefer the aqua/github variant of the tool instead of its asdf plugin
  4. Update mise: registry entries regularly gain platform-appropriate backends

Example fix

# before: config.toml has disable_backends = ['vfox'] and the tool only has a vfox backend
mise use toolname
# Error: toolname is in the mise tool registry but none of its backends (vfox:...) are supported in the current configuration

# after: edit ~/.config/mise/config.toml and remove 'vfox' from disable_backends
mise use toolname
Defensive patterns

Strategy: validation

Validate before calling

# bash: confirm the tool resolves to at least one usable backend before depending on it
if ! mise ls-remote "$TOOL" >/dev/null 2>&1; then
  echo "no usable backend for $TOOL (check disable_backends / platform / experimental)" >&2
  exit 1
fi

Prevention

When it happens

Trigger: Requesting a registry tool whose only backends are all excluded in the current configuration: an asdf-only tool on Windows (asdf is removed there), a backend listed in settings disable_backends, a platform/arch mismatch via backend_matches_platform, or an experimental-only backend while settings.experimental = false.

Common situations: Windows users hitting asdf-only tools; hardened setups that disable backends for policy reasons; experimental flag off for tools whose registry entries sit behind the flag; arm64 vs amd64 platform filters.

Related errors


AI-assisted analysis of jdx/mise@9dcfcaa0dc (2026-08-17). Data as JSON: /api/errors/ab4eab485b5b2774. Report an issue: GitHub.