lima-vm/lima · critical

vz driver requires macOS 13 or higher to run: %w

Error message

vz driver requires macOS 13 or higher to run: %w

What it means

Virtualization.framework requires macOS 13 (Ventura) or later. When `startVM` returns `vz.ErrUnsupportedOSVersion`, Start wraps it as `vz driver requires macOS 13 or higher to run: <cause>` instead of surfacing the raw framework error. (validateConfig checks this earlier too, but Start defends at runtime.)

Source

Thrown at pkg/driver/vz/vz_driver_darwin.go:460

	filesToClean := []string{
		ipsw,
		filepath.Join(l.Instance.Dir, filenames.Image),
	}
	for _, file := range filesToClean {
		if err := os.RemoveAll(file); err != nil {
			logrus.WithError(err).Warnf("Failed to remove %#q", file)
		}
	}

	return nil
}

func (l *LimaVzDriver) Start(ctx context.Context) (chan error, error) {
	logrus.Infof("Starting VZ (hint: to watch the boot progress, see %#q)", filepath.Join(l.Instance.Dir, "serial*.log"))
	vm, waitSSHLocalPortAccessible, errCh, err := startVM(ctx, l.Instance, l.SSHLocalPort, l.onVsockEvent)
	if err != nil {
		if errors.Is(err, vz.ErrUnsupportedOSVersion) {
			return nil, fmt.Errorf("vz driver requires macOS 13 or higher to run: %w", err)
		}
		return nil, err
	}
	l.machine = vm
	l.waitSSHLocalPortAccessible = waitSSHLocalPortAccessible

	return errCh, nil
}

func (l *LimaVzDriver) canRunGUI() bool {
	switch *l.Instance.Config.Video.Display {
	case "vz", "default":
		return true
	default:
		return false
	}
}

View on GitHub (pinned to dd909d0973)

Solutions

  1. Upgrade the host to macOS 13 or later
  2. Use vmType 'qemu', which supports older macOS versions
  3. Downgrade to a Lima version that still supports VZ on your macOS release (not recommended)

Example fix

# before (lima.yaml on macOS 12)
vmType: vz
# after
vmType: qemu
Defensive patterns

Strategy: validation

Validate before calling

v, err := osutil.ProductVersion()
if err == nil && v.LessThan(semver.MustParse("13.0.0")) {
    // do not use vmType: vz; use qemu or upgrade macOS
}

Type guard

func vzSupported(macVer string) bool {
    return !semver.MustParse(macVer).LessThan(semver.MustParse("13.0.0"))
}

Try / catch

if _, err := driver.Start(ctx); err != nil {
    if errors.Is(err, vz.ErrUnsupportedOSVersion) || strings.Contains(err.Error(), "requires macOS 13") {
        // fall back to qemu driver or abort with a clear message
    }
}

Prevention

When it happens

Trigger: Calling `limactl start` on a macOS 12 or older host, or any environment where `startVM` reports `vz.ErrUnsupportedOSVersion` at VM start time.

Common situations: Running an older macOS release (Monterey or earlier) with a Lima version that dropped support; CI runners pinned to old macOS images; forcing vmType 'vz' on unsupported hosts.

Related errors


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