jdx/mise · error
provider ' ' is inactive
Error message
provider '{}' is inactive: {reason} What it means
mise validates that every dependency provider selected in a project's deps configuration is currently active. A provider reports its applicability, and when it is `Inactive(reason)` — e.g. its required tool is unavailable or the platform/feature doesn't apply — mise refuses to proceed rather than silently skipping it. The reason string explains exactly why the provider is unusable.
Solutions
- Read the `{reason}` in the message and fix the underlying condition (install the missing tool, enable the backend/feature)
- Remove or comment out the inactive provider from the deps configuration
- Run `mise doctor` to see why the provider reports inactive
- Pin/use a provider variant that is active on your platform
Example fix
// before (mise.toml) [deps] provider = "cargo" # inactive: cargo toolchain not installed // after mise use cargo # install the toolchain so the provider is active
Defensive patterns
Strategy: validation
Validate before calling
let inactive: Vec<_> = providers.iter().filter(|p| matches!(p.applicability(), DepsProviderApplicability::Inactive(_))).map(|p| p.id().to_string()).collect();
if !inactive.is_empty() { eprintln!("inactive deps providers: {inactive:?}"); }
// run `mise doctor` first to inspect provider applicability Prevention
- Run `mise doctor` after changing toolchains/platforms
- Keep deps provider config minimal and platform-appropriate
- Test deps commands on a fresh checkout before relying on them
When it happens
Trigger: Calling `validate_provider_selection` (during deps resolution/run) while a provider listed in the deps config returns `DepsProviderApplicability::Inactive(reason)` from `provider.applicability()`.
Common situations: A deps provider configured in mise.toml depends on a tool or backend that is not installed/disabled; config copied from another machine or OS where the provider applies but here it doesn't.
Related errors
- ' ' depends on unknown
- deps run command cannot be empty
- provider ' ' does not support adding packages
- provider ' ' does not support removing packages
- provider ' ' is inactive
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/3db9b88e03b2b629.
Report an issue: GitHub.
Appendix: source
Thrown at src/deps/engine.rs:589
}
fn validate_provider_selection(
providers: &[Box<dyn DepsProvider>],
only: Option<&[String]>,
skip: &[String],
) -> Result<()> {
let Some(only) = only else {
return Ok(());
};
for id in only {
if skip.contains(id) {
continue;
}
let Some(provider) = providers.iter().find(|provider| provider.id() == id) else {
continue;
};
if let DepsProviderApplicability::Inactive(reason) = provider.applicability() {
bail!("provider '{}' is inactive: {reason}", provider.id());
}
}
Ok(())
}
/// Run all stale deps steps, respecting dependency ordering
pub(crate) async fn run(&self, opts: DepsOptions) -> Result<DepsResult> {
let mut results = vec![];
Self::validate_provider_selection(&self.providers, opts.only.as_deref(), &opts.skip)?;
let is_selected = |provider: &dyn DepsProvider| {
(!opts.auto_only || provider.is_auto())
&& !opts.skip.iter().any(|id| id == provider.id())
&& opts
.only
.as_ref()
.is_none_or(|only| only.iter().any(|id| id == provider.id()))View on GitHub (pinned to 533346cc37)