jdx/mise · error
mise oci currently supports only apt and apk entries in…
Error message
mise oci currently supports only apt and apk entries in [bootstrap.packages]; unsupported manager(s): {} What it means
mise's OCI bootstrap supports only apt and apk as system package managers. `[bootstrap.packages]` is a table keyed by manager name; any other key (e.g. dnf, pacman, zypper, brew) is collected, sorted/deduped, and reported in this error. It fires before any packages are installed.
Solutions
- Rename unsupported keys in `[bootstrap.packages]` to `apt` or `apk`
- Move non-system dependencies out of bootstrap.packages (use mise tools/config for those)
- Split the image build: bake distro packages needing another manager into a base image and reference it
Example fix
// before (mise.toml) [bootstrap.packages] dnf = ["curl"] // after [bootstrap.packages] apt = ["curl"]
Defensive patterns
Strategy: validation
Validate before calling
# validate bootstrap.packages keys before building tomlq -r '.bootstrap.packages | keys[]' mise.toml | grep -vE '^(apt|apk)$' \ && echo "unsupported package manager in [bootstrap.packages]" || true
Try / catch
match build() {
Err(e) if e.to_string().contains("supports only apt and apk") => {
eprintln!("fix [bootstrap.packages] keys to apt/apk only");
}
r => r,
} Prevention
- Only use `apt` and `apk` keys in [bootstrap.packages]
- Add config linting to CI to catch typos like dnf/yum/pacman
- Bake other package managers' packages into a custom base image
- Check docs for the supported manager list before adding entries
When it happens
Trigger: Configuring `[bootstrap.packages]` in a mise.toml with keys other than `apt` or `apk`, then running an oci build — `collect_package_requests` buckets entries and bails on unknown keys.
Common situations: Typos like `apks` or `aptd`; copying package-manager names from other ecosystems (dnf, yum, pacman, brew, npm) into bootstrap.packages; migrating config from another image-builder.
Related errors
- mise oci cannot mix apk and apt entries in…
- mise oci requires an
- oci mount_point must be an absolute path
- oci mount_point must not be empty
- agent ' ' `start_calendar_interval. ` must be between and
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/45b2f2951c689044.
Report an issue: GitHub.
Appendix: source
Thrown at src/oci/packages.rs:192
managers: &[ManagerPackages],
) -> Result<Option<(OciPackageManager, Vec<PackageRequest>)>> {
let mut apk = vec![];
let mut apt = vec![];
let mut unsupported = vec![];
for mgr in managers {
if mgr.disabled || mgr.requests.is_empty() {
continue;
}
match mgr.manager.name() {
"apk" => apk.extend(mgr.requests.clone()),
"apt" => apt.extend(mgr.requests.clone()),
other => unsupported.push(other.to_string()),
}
}
if !unsupported.is_empty() {
unsupported.sort();
unsupported.dedup();
bail!(
"mise oci currently supports only apt and apk entries in [bootstrap.packages]; \
unsupported manager(s): {}",
unsupported.join(", ")
);
}
if !apk.is_empty() && !apt.is_empty() {
bail!(
"mise oci cannot mix apk and apt entries in [bootstrap.packages]; use the package \
manager matching the selected base image"
);
}
if !apk.is_empty() {
Ok(Some((OciPackageManager::Apk, apk)))
} else if !apt.is_empty() {
Ok(Some((OciPackageManager::Apt, apt)))
} else {
Ok(None)
}View on GitHub (pinned to 533346cc37)