{"record":{"id":"b44dd427824ad758","repo":"jdx/mise","slug":"name-is-not-available","errorCode":null,"errorMessage":"{name} is not available: {}","messagePattern":"(.+?) is not available: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cli/system/driver.rs","lineNumber":104,"sourceCode":"    for mp in mgrs {\n        if let Some(only) = &d.manager\n            && mp.manager.name() != only\n        {\n            continue;\n        }\n        let name = mp.manager.name();\n        if mp.disabled {\n            if d.manager.is_some() {\n                bail!(\"manager '{name}' is excluded by the system_packages.managers setting\");\n            }\n            debug!(\"{name}: skipping, excluded by system_packages.managers\");\n            continue;\n        }\n        if let Some(reason) = mp.manager.unavailable_reason_async().await {\n            if unavailable_manager_is_error(d) {\n                // explicitly requested (via --manager or manager:package\n                // specs) — failing silently would be a lie\n                bail!(\"{name} is not available: {}\", reason);\n            }\n            debug!(\"{name}: skipping, {reason}\");\n            continue;\n        }\n        let statuses = mp.manager.installed(&mp.requests).await?;\n        if let Some(reason) = unavailable_package_reason(d, &statuses) {\n            bail!(\"{reason}\");\n        }\n        let mut targets: Vec<_> = statuses\n            .iter()\n            .filter(|s| match action {\n                Action::Install => {\n                    !matches!(s.state, PackageState::Installed { .. }) && !s.state.is_unavailable()\n                }\n                // upgrade acts on whatever is present (the manager no-ops\n                // already-current packages); missing packages are skipped\n                // below with a pointer at `install`\n                Action::Upgrade => {","sourceCodeStart":86,"sourceCodeEnd":122,"githubUrl":"https://github.com/jdx/mise/blob/9dcfcaa0dc8747a2577d3270b69bb9d8313b2807/src/cli/system/driver.rs#L86-L122","documentation":"Before acting on a manager's packages, mise checks whether the manager binary is actually usable (unavailable_reason_async: not installed, not on PATH, wrong OS). Unavailable managers are skipped with a debug log during bulk runs, but when the request is explicit (--manager flag or manager:package specs, per unavailable_manager_is_error), failing silently would be a lie, so mise errors with the concrete reason (e.g. command not found).","triggerScenarios":"Running `mise system install --manager brew` on a machine without Homebrew installed/on PATH; requesting a manager whose binary exists but is broken; CI images lacking the requested package manager.","commonSituations":"Linux CI reusing a macOS-oriented bootstrap config; fresh container without apt/brew/cargo present; manager installed in a non-standard PATH location not visible to mise.","solutions":["Install the manager (e.g. install Homebrew, or ensure cargo is on PATH), then retry","If on the wrong OS, pick a manager available there (apt/dnf on Linux, brew on macOS) and configure [bootstrap.packages] accordingly","Make bootstrap config OS-conditional (mise supports per-OS config merging) so unavailable managers are never explicitly requested"],"exampleFix":"# before\nmise system install --manager brew   # fails on Linux CI: brew not available\n\n# after\n# only request managers that exist on the host:\nmise system install --manager apt   # (Linux) or gate brew usage to macOS configs","handlingStrategy":"validation","validationCode":"# bash: prove the manager binary is invocable before asking mise for it\ncommand -v \"$MGR\" >/dev/null 2>&1 || { echo \"$MGR not installed/on PATH\" >&2; exit 2; }\nmise system install --manager \"$MGR\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pre-install required package managers in Dockerfiles/CI images before bootstrap steps","Make bootstrap configs OS-aware so unavailable managers are never requested explicitly"],"tags":["system-packages","package-manager","availability"],"backgroundTag":"package-manager-unavailable","analyzedSha":"9dcfcaa0dc8747a2577d3270b69bb9d8313b2807","analyzedAt":"2026-08-17T14:28:50.624Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}