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

  1. Switch vmType to a driver supported on your host: 'qemu' everywhere, or 'vz' on macOS 13+
  2. Run on an Apple Silicon Mac if the krunkit driver is genuinely required
  3. 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

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


AI-assisted analysis of abiosoft/colima@c3a5f9184d (2026-08-15). Data as JSON: /api/errors/e291c66295671fdc. Report an issue: GitHub.