jdx/mise · error
mise oci does not support [bootstrap.macos.*] defaults
Error message
mise oci does not support [bootstrap.macos.*] defaults (found {defaults} default entries); macOS defaults do not apply to OCI images. What it means
`mise oci build` rejects configs that define [bootstrap.macos.*] default entries, because macOS-specific bootstrap defaults cannot be applied when building a Linux OCI image. The check counts macOS default entries across all bootstrap systems and bails if any are found.
Solutions
- Remove the [bootstrap.macos.*] sections from the bootstrap config used for the OCI build
- Keep macOS defaults in a separate config not passed to mise oci build
- Use [bootstrap.linux.*] defaults instead, which apply to OCI images
Example fix
# before [bootstrap.macos.aarch64.default] xx = "yy" # after [bootstrap.linux.x86_64.default] xx = "yy"
Defensive patterns
Strategy: validation
Validate before calling
grep -q 'bootstrap.macos' bootstrap.toml && echo 'macOS defaults not supported for oci build' || mise oci build
Prevention
- Split macOS-specific bootstrap defaults into a config not used for OCI builds
- Review bootstrap.toml when sharing configs between macOS hosts and OCI builds
- Use [bootstrap.linux.*] entries for image builds
When it happens
Trigger: Running `mise oci build` while the active bootstrap configuration contains one or more [bootstrap.macos.*] default entries (e.g. [bootstrap.macos.aarch64] defaults), via reject_unsupported_system_defaults.
Common situations: Reusing a bootstrap.toml shared between native macOS mise bootstraps and OCI image builds, or copying a colleague's macOS bootstrap config into an OCI project.
Related errors
- brew-cask: : unsupported step type
- Dock application is unavailable
- [dotfiles]." ": mode symlink-each requires a directory…
- [dotfiles]." ": source does not exist
- [dotfiles]." ": source does not exist
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/5c6f5923d35e1cdc.
Report an issue: GitHub.
Appendix: source
Thrown at src/cli/oci/common.rs:143
// image either.
ToolsetBuilder::new()
.with_config_files(project_files)
.with_scope(ConfigScope::LocalOnly)
.build(config)
.await
}
fn reject_unsupported_system_defaults(config_files: &ConfigMap) -> Result<()> {
let mut defaults = 0usize;
for cf in config_files.values() {
let Some(system) = cf.bootstrap_config() else {
continue;
};
defaults += system::macos_defaults_entry_count(&system.macos);
}
if defaults > 0 {
bail!(
"mise oci does not support [bootstrap.macos.*] defaults (found {defaults} default entries); \
macOS defaults do not apply to OCI images."
);
}
Ok(())
}
pub(super) fn short_digest(d: &str) -> String {
let hex = d.trim_start_matches("sha256:");
if hex.len() >= 12 {
format!("sha256:{}", &hex[..12])
} else {
d.to_string()
}
}
#[cfg(test)]
mod tests {View on GitHub (pinned to 533346cc37)