{"record":{"id":"e291c66295671fdc","repo":"abiosoft/colima","slug":"vmtype-krunkit-is-only-available-on-macos-with-a","errorCode":null,"errorMessage":"vmType 'krunkit' is only available on macOS with Apple Silicon","messagePattern":"vmType 'krunkit' is only available on macOS with Apple Silicon","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"config/configmanager/configmanager.go","lineNumber":69,"sourceCode":"func ValidateConfig(c config.Config) error {\n\tvalidMountTypes := map[string]bool{\"9p\": true, \"sshfs\": true}\n\tvalidPortForwarders := map[string]bool{\"grpc\": true, \"ssh\": true, \"none\": true}\n\n\tif util.MacOS13OrNewer() {\n\t\tvalidMountTypes[\"virtiofs\"] = true\n\t}\n\tif _, ok := validMountTypes[c.MountType]; !ok {\n\t\treturn fmt.Errorf(\"invalid mountType: '%s'\", c.MountType)\n\t}\n\tvalidVMTypes := map[string]bool{\"qemu\": true}\n\tif util.MacOS13OrNewer() {\n\t\tvalidVMTypes[\"vz\"] = true\n\t}\n\tif util.MacOS13OrNewerOnArm() {\n\t\tvalidVMTypes[\"krunkit\"] = true\n\t}\n\tif c.VMType == \"krunkit\" && !util.MacOS13OrNewerOnArm() {\n\t\treturn fmt.Errorf(\"vmType 'krunkit' is only available on macOS with Apple Silicon\")\n\t}\n\tif _, ok := validVMTypes[c.VMType]; !ok {\n\t\treturn fmt.Errorf(\"invalid vmType: '%s'\", c.VMType)\n\t}\n\tif c.VMType == \"qemu\" {\n\t\tif err := util.AssertQemuImg(); err != nil {\n\t\t\treturn fmt.Errorf(\"cannot use vmType: '%s', error: %w\", c.VMType, err)\n\t\t}\n\t}\n\tif c.VMType == \"krunkit\" {\n\t\tif err := util.AssertKrunkit(); err != nil {\n\t\t\treturn fmt.Errorf(\"cannot use vmType: '%s', error: %w\", c.VMType, err)\n\t\t}\n\t}\n\n\tif c.DiskImage != \"\" {\n\t\tif strings.HasPrefix(c.DiskImage, \"http://\") || strings.HasPrefix(c.DiskImage, \"https://\") {\n\t\t\treturn fmt.Errorf(\"cannot use diskImage: remote URLs not supported, only local files can be specified\")","sourceCodeStart":51,"sourceCodeEnd":87,"githubUrl":"https://github.com/abiosoft/colima/blob/c3a5f9184d83a197184f897a9f07eb3c01b3bc88/config/configmanager/configmanager.go#L51-L87","documentation":"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.","triggerScenarios":"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().","commonSituations":"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.","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"],"exampleFix":"# before (on Intel Mac or Linux)\nvmType: krunkit\n\n# after\nvmType: vz   # macOS 13+; otherwise use 'qemu'","handlingStrategy":"validation","validationCode":"// guard before selecting vmType from shared config\nif vmType == \"krunkit\" && !(runtime.GOOS == \"darwin\" && armCPU() && macOS13OrNewer()) {\n    vmType = \"qemu\" // or fail fast with a clear message\n}","typeGuard":null,"tryCatchPattern":"if err := configmanager.ValidateConfig(c); err != nil {\n    if strings.Contains(err.Error(), \"krunkit\") {\n        // platform mismatch: downgrade driver explicitly, do not guess\n        c.VMType = \"qemu\"\n    }\n}","preventionTips":["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"],"tags":["config","validation","vm-type","apple-silicon"],"backgroundTag":null,"analyzedSha":"c3a5f9184d83a197184f897a9f07eb3c01b3bc88","analyzedAt":"2026-08-15T18:58:08.334Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}