jdx/mise · error
Provider '{provider_id}' not found. Available providers: {a
Error message
Provider '{provider_id}' not found.
Available providers:
{available} What it means
In `mise deps install`, `explain_provider` looks up the requested provider id in the DepsEngine's provider list. When no registered provider matches the id, it collects all available provider ids and bails with 'Provider <id> not found' plus the list, so the user can pick a valid one.
Source
Thrown at src/cli/deps/install.rs:182
info!("All dependencies are up to date");
}
Ok(())
}
fn explain_provider(
engine: &DepsEngine,
provider_id: &str,
effective_env: &std::collections::BTreeMap<String, String>,
) -> Result<()> {
let Some(provider) = engine.find_provider(provider_id) else {
let available = engine
.list_providers()
.iter()
.map(|p| format!(" {}", p.id()))
.collect::<Vec<_>>()
.join("\n");
bail!("Provider '{provider_id}' not found.\n\nAvailable providers:\n{available}");
};
let applicability = provider.applicability();
// Header
miseprintln!("Provider: {}", provider.id());
miseprintln!("Auto: {}", if provider.is_auto() { "yes" } else { "no" });
// Sources
let sources = provider.sources();
miseprintln!("Sources:");
for source in &sources {
let exists = source.exists();
let marker = if exists { "+" } else { "-" };
miseprintln!(" {} {}", marker, source.display());
}
// OutputsView on GitHub (pinned to afd2eddd3a)
Solutions
- Use one of the ids printed under 'Available providers:' in the error message
- Run `mise deps install --list` to see the current provider list
- Update mise if the provider was added in a newer version
Example fix
// before mise deps install nmpm --explain // after mise deps install npm --explain
Defensive patterns
Strategy: validation
Validate before calling
PROVIDERS=$(mise deps install --list)
echo "$PROVIDERS" | grep -qx " $PROVIDER" || { echo "unknown provider $PROVIDER"; exit 1; } Try / catch
if let Err(e) = result {
if e.to_string().starts_with("Provider '") && e.to_string().contains("not found") {
// parse 'Available providers:' list and pick a valid id
}
} Prevention
- Discover provider ids via `mise deps install --list` instead of guessing
- Keep mise updated so newly added providers are available
- Match provider ids exactly (case-sensitive)
When it happens
Trigger: Running `mise deps install <provider> --explain` or an install that routes through explain_provider with a provider id that is not registered in the engine (typo, removed/renamed provider, plugin not contributing it).
Common situations: Typos like `nmpm` instead of `npm`, using a provider id from documentation of a different mise version, or a provider only available behind a feature/setting not enabled locally.
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
- provider '{}' is inactive: {reason}
- --explain requires a provider argument, e.g.: mise deps inst
- provider '{}' is stale
- provider '{}' is inactive: {reason}
- provider '{}' does not support adding packages
AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09).
Data as JSON: /api/errors/6572a2c0e6ece158.
Report an issue: GitHub.