jdx/mise · error
provider ' ' does not support removing packages
Error message
provider '{}' does not support removing packages What it means
Companion to add_command: the default `DepsProvider::remove_command` implementation bails for providers that cannot uninstall dependencies. Calling package removal on such a provider fails with the provider's id in the message.
Solutions
- Use a provider that supports removal (overrides `remove_command`)
- Remove the dependency with the underlying package manager directly and regenerate the lockfile
- Implement `remove_command` if this is your own provider
Example fix
// before mise deps remove serde # provider lacks remove support cargo remove serde # via the package manager directly // after mise use cargo mise deps remove serde
Defensive patterns
Strategy: fallback
Try / catch
match provider.remove_command(pkgs) {
Ok(cmd) => run(cmd),
Err(_) => fallback_to_native_pm(provider.id(), pkgs), // e.g. `cargo remove`
} Prevention
- Assume removal is not universally supported; test per provider
- Script removals against the native package manager for read-only providers
- Document provider capability limits in team configs
When it happens
Trigger: Running a deps-remove operation whose selected provider has not overridden `remove_command`.
Common situations: `mise deps remove <pkg>` against a provider backed by a read-only or lockfile-only source; assuming removal parity with add/list support.
Related errors
- provider ' ' does not support adding packages
- provider ' ' is inactive
- provider ' ' is inactive
- Provider ' ' not found. Available providers
- automatic cross-platform provisioning is unavailable from a…
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/85fe8559b4c5a899.
Report an issue: GitHub.
Appendix: source
Thrown at src/deps/mod.rs:287
self.base().config.timeout.as_deref().and_then(|t| {
match crate::duration::parse_duration(t) {
Ok(d) => Some(d),
Err(err) => {
warn!("deps: {}: invalid timeout {t:?}: {err}", self.id());
None
}
}
})
}
/// Command to add one or more package dependencies
fn add_command(&self, _packages: &[&str], _dev: bool) -> Result<DepsCommand> {
bail!("provider '{}' does not support adding packages", self.id())
}
/// Command to remove one or more package dependencies
fn remove_command(&self, _packages: &[&str]) -> Result<DepsCommand> {
bail!(
"provider '{}' does not support removing packages",
self.id()
)
}
}
/// Warn if any auto-enabled deps providers are stale
pub(crate) fn notify_if_stale(config: &Arc<Config>, effective_env: &BTreeMap<String, String>) {
// Skip in shims or quiet mode
if *env::__MISE_SHIM || Settings::get().quiet {
return;
}
// Check if this feature is enabled
if !Settings::get().status.show_deps_stale {
return;
}
View on GitHub (pinned to 533346cc37)