abiosoft/colima · error
vmType 'krunkit' is only available on macOS with Apple Silic
Error message
vmType 'krunkit' is only available on macOS with Apple Silicon
What it means
ValidateConfig rejects vmType 'krunkit' when the host is not macOS 13+ on Apple Silicon. krunkit is only registered in the validVMTypes map when util.MacOS13OrNewerOnArm() is true; this explicit guard fires before the generic invalid-vmType check so the user gets a platform-specific explanation.
Source
Thrown at config/configmanager/configmanager.go:69
func ValidateConfig(c config.Config) error {
validMountTypes := map[string]bool{"9p": true, "sshfs": true}
validPortForwarders := map[string]bool{"grpc": true, "ssh": true, "none": true}
if util.MacOS13OrNewer() {
validMountTypes["virtiofs"] = true
}
if _, ok := validMountTypes[c.MountType]; !ok {
return fmt.Errorf("invalid mountType: '%s'", c.MountType)
}
validVMTypes := map[string]bool{"qemu": true}
if util.MacOS13OrNewer() {
validVMTypes["vz"] = true
}
if util.MacOS13OrNewerOnArm() {
validVMTypes["krunkit"] = true
}
if c.VMType == "krunkit" && !util.MacOS13OrNewerOnArm() {
return fmt.Errorf("vmType 'krunkit' is only available on macOS with Apple Silicon")
}
if _, ok := validVMTypes[c.VMType]; !ok {
return fmt.Errorf("invalid vmType: '%s'", c.VMType)
}
if c.VMType == "qemu" {
if err := util.AssertQemuImg(); err != nil {
return fmt.Errorf("cannot use vmType: '%s', error: %w", c.VMType, err)
}
}
if c.VMType == "krunkit" {
if err := util.AssertKrunkit(); err != nil {
return fmt.Errorf("cannot use vmType: '%s', error: %w", c.VMType, err)
}
}
if c.DiskImage != "" {
if strings.HasPrefix(c.DiskImage, "http://") || strings.HasPrefix(c.DiskImage, "https://") {
return fmt.Errorf("cannot use diskImage: remote URLs not supported, only local files can be specified")View on GitHub (pinned to c3a5f9184d)
Solutions
- Switch vmType to a driver supported on your host: 'qemu' everywhere, or 'vz' on macOS 13+
- Run on an Apple Silicon Mac if the krunkit driver is genuinely required
- Remove the vmType key to fall back to the default driver for the platform
Example fix
# before (on Intel Mac or Linux) vmType: krunkit # after vmType: vz # macOS 13+; otherwise use 'qemu'
Defensive patterns
Strategy: validation
Validate before calling
// guard before selecting vmType from shared config
if vmType == "krunkit" && !(runtime.GOOS == "darwin" && armCPU() && macOS13OrNewer()) {
vmType = "qemu" // or fail fast with a clear message
} Try / catch
if err := configmanager.ValidateConfig(c); err != nil {
if strings.Contains(err.Error(), "krunkit") {
// platform mismatch: downgrade driver explicitly, do not guess
c.VMType = "qemu"
}
} Prevention
- Do not share krunkit configs across Intel and ARM machines
- Omit vmType in portable presets and let each platform pick its default
- Check the host arch (uname -m) before applying Apple Silicon presets
When it happens
Trigger: A config with vmType: krunkit loaded on an Intel Mac, a Linux host, or a macOS version older than 13. The check is c.VMType == 'krunkit' && !util.MacOS13OrNewerOnArm().
Common situations: Sharing colima.yaml between machines of different architectures; following Apple Silicon setup instructions on an Intel Mac; profiles or presets copied from an M-series laptop to older hardware.
Related errors
- invalid vmType: '%s'
- error in config file: %w
- error in config: %w
- invalid mountType: '%s'
- cannot use vmType: '%s', error: %w
AI-assisted analysis of abiosoft/colima@c3a5f9184d (2026-08-15).
Data as JSON: /api/errors/e291c66295671fdc.
Report an issue: GitHub.