lima-vm/lima · error
VZ driver requires macOS 13 or higher to run
Error message
VZ driver requires macOS 13 or higher to run
What it means
The VZ driver requires macOS 13 (Ventura) or higher because the Virtualization.framework APIs it uses were introduced in macOS 13. validateConfig checks osutil.ProductVersion() and throws this error on older hosts.
Source
Thrown at pkg/driver/vz/vz_driver_darwin.go:269
}
return scripts, nil
}
func (l *LimaVzDriver) Validate(_ context.Context) error {
return validateConfig(l.Instance.Config)
}
func validateConfig(cfg *limatype.LimaYAML) error {
if cfg == nil {
return errors.New("configuration is nil")
}
macOSProductVersion, err := osutil.ProductVersion()
if err != nil {
return err
}
if macOSProductVersion.LessThan(*semver.New("13.0.0")) {
return errors.New("VZ driver requires macOS 13 or higher to run")
}
if runtime.GOARCH == "amd64" && macOSProductVersion.LessThan(*semver.New("15.5.0")) {
logrus.Warnf("vmType %s: On Intel Mac, macOS 15.5 or later is required to run Linux 6.12 or later. "+
"Update macOS, or change vmType to `qemu` if the VM does not start up. (https://github.com/lima-vm/lima/issues/3334)",
*cfg.VMType)
}
if cfg.MountType != nil && *cfg.MountType == limatype.NINEP {
return fmt.Errorf("field `mountType` must be %#q or %#q for VZ driver , got %#q", limatype.REVSSHFS, limatype.VIRTIOFS, *cfg.MountType)
}
if cfg.TPM != nil && *cfg.TPM {
return errors.New("field `tpm` is not supported on VZ driver")
}
if cfg.OS != nil && *cfg.OS == limatype.WINDOWS {
return errors.New("currently Windows guest OS is only supported on QEMU")
}
if *cfg.Firmware.LegacyBIOS {
logrus.Warnf("vmType %s: ignoring `firmware.legacyBIOS`", *cfg.VMType)
}View on GitHub (pinned to dd909d0973)
Solutions
- Upgrade the host to macOS 13 or later
- Change vmType to "qemu" in the instance config for older hosts
- Use a Lima version that still supports the qemu driver on old macOS (or run Lima in a newer macOS VM/CI runner)
Example fix
// before (lima.yaml) vmType: vz // after vmType: qemu
Defensive patterns
Strategy: validation
Validate before calling
v, err := osutil.ProductVersion()
if err != nil { return err }
if v.LessThan(*semver.New("13.0.0")) {
// use vmType: qemu instead of vz
} Try / catch
if err := start(); err != nil && strings.Contains(err.Error(), "requires macOS 13") {
// switch vmType to qemu and retry
} Prevention
- Check macOS version before choosing vmType: vz
- Default to "qemu" on macOS 12 and older
- Pin CI runners to macOS 13+ when using the VZ driver
When it happens
Trigger: Running `limactl start` with vmType "vz" on a macOS host at version < 13.0.0.
Common situations: Using Lima on macOS 12 Monterey or older; CI machines pinned to older macOS images; forgetting to switch vmType to "qemu" on legacy hosts.
Related errors
- failed to create virtio sound device configuration: %w
- `firmware.images` configuration is not supported for VZ driv
- unsupported arch: %#q
- vmOpts.vz.diskImageFormat=%#q requires macOS 26 or higher to
- field `vmOpts.vz.diskImageFormat` must be %#q or %#q, got %#
AI-assisted analysis of lima-vm/lima@dd909d0973 (2026-09-01).
Data as JSON: /api/errors/68211b4747a1b294.
Report an issue: GitHub.