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

  1. Upgrade the host to macOS 13 or later
  2. Change vmType to "qemu" in the instance config for older hosts
  3. 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

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


AI-assisted analysis of lima-vm/lima@dd909d0973 (2026-09-01). Data as JSON: /api/errors/68211b4747a1b294. Report an issue: GitHub.