jdx/mise · error
Provider ' ' not found. Available providers
Error message
Provider '{provider_id}' not found.
Available providers:
{available} What it means
`explain_provider` looks up the requested provider id in the dependency engine. If `engine` has no provider with that id, it bails with the offending id plus a formatted list of all available provider ids so the user can correct the name.
Solutions
- Read the 'Available providers' list in the error and retry with an exact id.
- Run `mise deps install --list` to enumerate provider ids.
- Check whether the provider requires a mise setting or feature to be enabled.
Example fix
// before $ mise deps install nodejs --explain // Provider 'nodejs' not found // after $ mise deps install npm --explain
Defensive patterns
Strategy: validation
Validate before calling
mise deps install --list | grep -qx " $provider" || echo "unknown provider: $provider"
Prevention
- Copy provider ids exactly from `mise deps install --list`.
- Pin provider ids in scripts rather than typing them ad hoc.
When it happens
Trigger: Run `mise deps install <provider> --explain` where `list_providers()` contains no provider whose id equals the given `provider_id` (lookup returns None).
Common situations: Typo'd provider id (npm vs node, etc.); provider not enabled in this build/feature set; stale docs referencing a removed provider; running with `--list` skipped so available ids were never checked.
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
- cannot encode # as JSON
- --explain requires a provider argument, e.g.: mise deps…
- no dotfiles matched target filter
- no history checkpoint matches
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/6572a2c0e6ece158.
Report an issue: GitHub.
Appendix: 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 533346cc37)