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
- Install the missing plugin: mise plugin install package:<name> <url>
- Correct the manager name to one of the built-in managers (brew, apt, apk, etc.)
- 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
- Run `mise plugin install package:<name> ...` before referencing a custom manager in mise.toml
- Prefer built-in managers (brew, apt, apk) unless the plugin is part of your repo bootstrap
- Document required package plugins in your project README/setup script so new machines provision them
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
- manager '{name}' is excluded by the system_packages.managers
- remote cache blob packs require a positive max_pack_bytes li
- Invalid checksum format: {}
- {option}: '{name}' must be a plain file name (no path separa
- {option}: '{path}' must be a safe relative path (no absolute
AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09).
Data as JSON: /api/errors/e456edd04eab0245.
Report an issue: GitHub.