abiosoft/colima · error
invalid vmType: '%s'
Error message
invalid vmType: '%s'
What it means
ValidateConfig rejects the vmType field against a platform-dependent allowlist: 'qemu' is always valid, 'vz' is added on macOS 13+, and 'krunkit' on macOS 13+ ARM. Any value not present in validVMTypes after those platform adjustments is refused with the value echoed.
Source
Thrown at config/configmanager/configmanager.go:72
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
- Set vmType to exactly 'qemu', or 'vz' (macOS 13+), or 'krunkit' (macOS 13+ ARM)
- On Linux or macOS <13 use 'qemu', the only universally valid driver
- Check 'colima version' and the matching release notes for the driver names supported by your build
Example fix
# before (on Linux) vmType: vz # after vmType: qemu
Defensive patterns
Strategy: validation
Validate before calling
func validVMType(vmType string, macOS13OrNewer, macOS13OrNewerOnArm bool) bool {
valid := map[string]bool{"qemu": true}
if macOS13OrNewer {
valid["vz"] = true
}
if macOS13OrNewerOnArm {
valid["krunkit"] = true
}
return valid[vmType]
} Try / catch
if err := configmanager.ValidateConfig(c); err != nil {
if strings.HasPrefix(err.Error(), "invalid vmType") {
// show the allowlist for this host instead of retrying blindly
log.Println("supported vmType: qemu; vz (macOS 13+); krunkit (macOS 13+ ARM)")
}
} Prevention
- Use 'qemu' in any config shared across platforms
- Set vmType via CLI flags so tab-completion prevents typos
- Revalidate configs with 'colima start' after OS upgrades or downgrades
When it happens
Trigger: vmType set to 'vz' on Linux or macOS older than 13; values with typos or wrong case such as 'QEMU', 'vz ', or 'krun-kit'; an empty vmType after a bad merge of config profiles.
Common situations: Configs moved between Linux and macOS hosts; using vz after a macOS downgrade; older colima versions accepting values the current build no longer registers; copy-paste introducing stray characters.
Related errors
- vmType 'krunkit' is only available on macOS with Apple Silic
- 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/4e9456a1028069c8.
Report an issue: GitHub.