jdx/mise · error

unknown bootstrap package manager '{name}' — install a packa

Error message

unknown bootstrap package manager '{name}' — install a package plugin: mise plugin install package:{name} <url>

What it means

Package requests are grouped by manager name and looked up among the available bootstrap managers. If no manager plugin exists for the name and strict mode is on, src/system/mod.rs:1639 bails with instructions to install a package plugin via `mise plugin install package:<name> <url>`. On Windows, brew is treated as unsupported rather than unknown.

Source

Thrown at src/system/mod.rs:1639

    for (name, requests) in by_mgr {
        let disabled = enabled.as_ref().is_some_and(|e| !e.contains(&name));
        if disabled && strict {
            bail!(
                "manager '{name}' is excluded by the system_packages.managers setting \
                 (currently: {})",
                enabled.as_deref().unwrap_or_default().join(", ")
            );
        }
        match managers.get(&name) {
            Some(manager) => out.push(ManagerPackages {
                manager: manager.clone(),
                requests,
                options: manager_options.shift_remove(&name).unwrap_or_default(),
                disabled,
            }),
            None => {
                if strict {
                    bail!(
                        "unknown bootstrap package manager '{name}' — install a package plugin: mise plugin install package:{name} <url>"
                    );
                }
                // brew is compiled out on Windows — not unknown, just
                // unsupported there
                if cfg!(windows) && name == "brew" {
                    debug!("system package manager 'brew' is not supported on windows");
                } else if crate::config::is_loaded()
                    && plugins_from_config(&crate::config::Config::get_()).contains_key(&name)
                {
                    warn!(
                        "unknown bootstrap package manager '{name}' in [bootstrap.packages] — declared in [bootstrap.plugins] but not installed; run `mise bootstrap`"
                    );
                } else {
                    warn!(
                        "unknown bootstrap package manager '{name}' in [bootstrap.packages], ignoring — install a package plugin: mise plugin install package:{name} <url>"
                    );
                }

View on GitHub (pinned to afd2eddd3a)

Solutions

  1. Install the missing plugin: mise plugin install package:<name> <url>
  2. Correct the manager name to one of the built-in managers (brew, apt, apk, etc.)
  3. Remove the unsupported manager's packages, or move them to an installed manager

Example fix

// before (mise.toml)
[system_packages]
dnf = ["ripgrep"]
// after — install the plugin first, or use an available manager
mise plugin install package:dnf https://github.com/example/mise-package-dnf.git
// or
[system_packages]
apt = ["ripgrep"]
Defensive patterns

Strategy: validation

Validate before calling

// before using a custom manager in config, confirm its plugin is installed
mise plugin ls | grep -q "^package:dnf" || mise plugin install package:dnf <url>

Try / catch

match result {
    Err(e) if e.to_string().contains("unknown bootstrap package manager") => {
        // install the plugin or fall back to a built-in manager
    }
    r => r?,
}

Prevention

When it happens

Trigger: system_packages declares a manager name with no corresponding package manager plugin compiled in or installed (e.g. apk, dnf, zypper, or a custom manager) while running a strict config load; the managers map lookup returns None and strict is true.

Common situations: Copying a colleague's mise.toml that uses a manager whose plugin you never installed; referencing niche managers (pacman, dnf) on a system where mise was built without them; typos like 'appt' or 'brews'.

Understand the failure class

Background: "not installed", "pip install", "required for": how missing-dependency errors surface across open-source libraries — this error's family across 34 libraries.

Related errors


AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09). Data as JSON: /api/errors/e456edd04eab0245. Report an issue: GitHub.