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

  1. Use a provider that supports removal (overrides `remove_command`)
  2. Remove the dependency with the underlying package manager directly and regenerate the lockfile
  3. 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

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


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)