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
- Upgrade the host to macOS 13 or later
- Use vmType 'qemu', which supports older macOS versions
- 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
- Check the macOS version before choosing vmType: vz
- Default CI runners on macOS <= 12 to vmType: qemu
- Prefer limactl validate to catch this before start
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
- vmOpts.vz.diskImageFormat=%#q requires macOS 26 or higher to
- nested virtualization requires macOS 15 or newer
- failed to create virtio sound device configuration: %w
- VZ driver requires macOS 13 or higher to run
- `firmware.images` configuration is not supported for VZ driv
AI-assisted analysis of lima-vm/lima@dd909d0973 (2026-09-01).
Data as JSON: /api/errors/c582f4f197f55184.
Report an issue: GitHub.