jdx/mise · error · eyre::Report

manager '{}' is excluded by the system_packages.managers set

Error message

manager '{}' is excluded by the system_packages.managers setting

What it means

`mise system import <manager>` re-reads the system_packages.managers allow-list before importing. If the setting is set and does not contain the requested manager, the import is refused up front — importing packages into a config that will then ignore that manager would be misleading.

Source

Thrown at src/cli/system/import.rs:78

    #[clap(
        long,
        short,
        visible_alias = "file",
        value_name = "PATH",
        conflicts_with = "global"
    )]
    path: Option<PathBuf>,
}

impl SystemImport {
    pub async fn run(self) -> Result<()> {
        if Settings::get()
            .system_packages
            .managers
            .as_ref()
            .is_some_and(|enabled| !enabled.contains(&self.manager))
        {
            bail!(
                "manager '{}' is excluded by the system_packages.managers setting",
                self.manager
            );
        }
        self.run_brew().await
    }

    #[cfg(unix)]
    async fn run_brew(self) -> Result<()> {
        debug_assert_eq!(self.manager, "brew");
        let manager = brew::BrewManager::new();
        if !manager.is_available() {
            bail!("brew is not available: {}", manager.unavailable_reason());
        }
        let formulae = brew::linked_formulae(self.all)?;
        if formulae.is_empty() {
            info!("brew: no installed formulae to import");
            return Ok(());

View on GitHub (pinned to 9dcfcaa0dc)

Solutions

  1. Add the manager to the list: `mise settings set system_packages.managers brew,...` then re-run the import
  2. Or unset the restriction: `mise settings unset system_packages.managers`
  3. Verify current value first: `mise settings get system_packages.managers`

Example fix

# before
# system_packages.managers = ["apt"]
mise system import brew   # fails

# after
mise settings set system_packages.managers apt,brew
mise system import brew
Defensive patterns

Strategy: validation

Validate before calling

# bash: confirm the manager passes the allow-list before importing
enabled=$(mise settings get system_packages.managers 2>/dev/null || true)
[[ -z "$enabled" || ", $enabled, " == *", $MGR,"* ]] || { echo "$MGR excluded: $enabled" >&2; exit 2; }
mise system import "$MGR"

Prevention

When it happens

Trigger: Running `mise system import brew` when settings contain `system_packages.managers` without "brew" in the list (is_some_and(!contains)). A None (unset) managers setting never triggers this.

Common situations: Restricting managers to apt/dnf system-wide then trying to import from brew; stale global settings after switching package managers; shared team config that excludes brew while a macOS dev runs the import.

Related errors


AI-assisted analysis of jdx/mise@9dcfcaa0dc (2026-08-17). Data as JSON: /api/errors/948e1d2a98f346a2. Report an issue: GitHub.