jdx/mise · error
manager ' ' is excluded by the system_packages.managers…
Error message
manager '{only}' is excluded by the system_packages.managers setting (currently: {}) What it means
A single manager was requested for a system-packages operation, but the `system_packages.managers` setting exists and does not include that manager. mise distinguishes this from 'no packages configured' because the manager was filtered out by settings, and reports it as an error with the currently enabled manager list.
Solutions
- Add the manager to `system_packages.managers` in your mise settings.
- Remove the setting entirely to allow all supported managers.
- Pass a manager that is in the currently enabled list shown in the error.
Example fix
// before (settings.toml) [system_packages] managers = ["apt"] // after [system_packages] managers = ["apt", "brew"]
Defensive patterns
Strategy: validation
Validate before calling
const managers = /* read system_packages.managers from mise settings */ ['apt'];
if (!managers.includes(requestedManager)) { throw new Error(`enable '${requestedManager}' in system_packages.managers first`); } Try / catch
try { await run(`mise system install --manager ${m} ${pkgs}`) } catch (e) { if (String(e).includes('excluded by the system_packages.managers setting')) { /* prompt to update settings */ } } Prevention
- Keep system_packages.managers in sync with the managers you actually use
- Remove the setting if you want all managers allowed
- Check enabled managers with mise settings before scripting
When it happens
Trigger: Running a system-packages command with a single manager (`--manager <only>`) where `Settings::get().system_packages.managers` is Some(list) and the list does not contain that manager.
Common situations: User set `system_packages.managers = ["apt"]` in settings but invokes operations for brew/dnf; settings inherited from a config file exclude the manager the user names on the CLI.
Understand the failure class
Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.
Related errors
- manager ' ' is excluded by the system_packages.managers…
- is not available
- no packages requested for manager
- history is disabled (history.enabled = false)
- history is disabled (history.enabled = false)
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/57b9688c144ab11e.
Report an issue: GitHub.
Appendix: source
Thrown at src/cli/system/driver.rs:70
statuses
.iter()
.find_map(|status| status.state.unavailable_reason())
}
/// Run `action` for every manager in `mgrs`, honoring the `--manager` filter,
/// disabled/unavailable managers, unsatisfiable version pins, and the
/// confirmation prompt.
pub(crate) async fn run(mgrs: Vec<ManagerPackages>, action: Action, d: &DriverOpts) -> Result<()> {
if let Some(only) = &d.manager
&& !mgrs.iter().any(|mp| mp.manager.name() == only)
{
// distinguish "not configured" from "filtered out by settings" —
// the aggregation drops managers excluded by
// system_packages.managers before we ever see them
if let Some(enabled) = &Settings::get().system_packages.managers
&& !enabled.contains(only)
{
bail!(
"manager '{only}' is excluded by the system_packages.managers setting \
(currently: {})",
enabled.join(", ")
);
}
bail!("no packages requested for manager '{only}'");
}
if mgrs.is_empty() {
info!("no bootstrap packages configured in [bootstrap.packages]");
return Ok(());
}
let opts = InstallOpts {
dry_run: d.dry_run,
update: d.update,
};
for mp in mgrs {
if let Some(only) = &d.manager
&& mp.manager.name() != onlyView on GitHub (pinned to 533346cc37)