{"record":{"id":"f12ec41bd51de317","repo":"lima-vm/lima","slug":"vmopts-vz-diskimageformat-q-requires-macos-26-or","errorCode":null,"errorMessage":"vmOpts.vz.diskImageFormat=%#q requires macOS 26 or higher to run, got %#q","messagePattern":"vmOpts\\.vz\\.diskImageFormat=%#q requires macOS 26 or higher to run, got %#q","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/driver/vz/vz_driver_darwin.go","lineNumber":353,"sourceCode":"\tcase \"vz\", \"default\", \"none\":\n\tdefault:\n\t\tlogrus.Warnf(\"field `audio.device` must be `vz`, `default`, or `none` for VZ driver, got %#q\", audioDevice)\n\t}\n\n\tswitch videoDisplay := *cfg.Video.Display; videoDisplay {\n\tcase \"vz\", \"default\", \"none\":\n\tdefault:\n\t\tlogrus.Warnf(\"field `video.display` must be `vz`, `default`, or `none` for VZ driver , got %#q\", videoDisplay)\n\t}\n\tvar vzOpts limatype.VZOpts\n\tif err := limayaml.Convert(cfg.VMOpts[limatype.VZ], &vzOpts, \"vmOpts.vz\"); err != nil {\n\t\tlogrus.WithError(err).Warnf(\"Couldn't convert %#q\", cfg.VMOpts[limatype.VZ])\n\t}\n\tswitch *vzOpts.DiskImageFormat {\n\tcase raw.Type:\n\tcase asif.Type:\n\t\tif macOSProductVersion.LessThan(*semver.New(\"26.0.0\")) {\n\t\t\treturn fmt.Errorf(\"vmOpts.vz.diskImageFormat=%#q requires macOS 26 or higher to run, got %#q\", asif.Type, macOSProductVersion)\n\t\t}\n\tdefault:\n\t\treturn fmt.Errorf(\"field `vmOpts.vz.diskImageFormat` must be %#q or %#q, got %#q\", raw.Type, asif.Type, *vzOpts.DiskImageFormat)\n\t}\n\treturn nil\n}\n\nfunc (l *LimaVzDriver) Create(_ context.Context) error {\n\tidentifierFile := filepath.Join(l.Instance.Dir, filenames.VzIdentifier)\n\tif *l.Instance.Config.OS == limatype.DARWIN {\n\t\t_, err := getMacMachineIdentifier(identifierFile)\n\t\treturn err\n\t}\n\t_, err := getGenericMachineIdentifier(identifierFile)\n\treturn err\n}\n\nfunc (l *LimaVzDriver) CreateDisk(ctx context.Context) error {","sourceCodeStart":335,"sourceCodeEnd":371,"githubUrl":"https://github.com/lima-vm/lima/blob/dd909d0973cd84fa35f9e1693181b4585ea616c1/pkg/driver/vz/vz_driver_darwin.go#L335-L371","documentation":"The ASIF (Apple Sparse Image Format) disk image format is only supported by Virtualization.framework on macOS 26 (Tahoe) or later. validateConfig checks the running macOS product version and refuses a `vmOpts.vz.diskImageFormat: asif` configuration on older macOS releases.","triggerScenarios":"Setting `vmOpts:\n  vz:\n    diskImageFormat: asif` in the instance config and running `limactl start` (or validate) on macOS < 26, where `osutil.ProductVersion()` is less than 26.0.0.","commonSituations":"Adopting the new asif format recommended for newer Limas while still running macOS 13-15; sharing a lima.yaml from a macOS 26 machine to an older Mac.","solutions":["Upgrade the host to macOS 26 or later","Remove the diskImageFormat option (defaults to raw)","Set `vmOpts.vz.diskImageFormat: raw`"],"exampleFix":"# before\nvmOpts:\n  vz:\n    diskImageFormat: asif\n# after\nvmOpts:\n  vz:\n    diskImageFormat: raw","handlingStrategy":"validation","validationCode":"v, err := osutil.ProductVersion() // or sw_vers on the host\nif err == nil && v.LessThan(*semver.New(\"26.0.0\")) {\n    // ensure vmOpts.vz.diskImageFormat != \"asif\" before starting\n}","typeGuard":"func asifSupported(macVer string) bool {\n    v := semver.MustParse(macVer)\n    return !v.LessThan(semver.MustParse(\"26.0.0\"))\n}","tryCatchPattern":null,"preventionTips":["Use asif only on macOS 26+ hosts","Omit diskImageFormat to accept the raw default","Gate asif in shared templates with a macOS version condition"],"tags":["macos","vz","version-check","disk-image"],"backgroundTag":"unsupported-os-version","analyzedSha":"dd909d0973cd84fa35f9e1693181b4585ea616c1","analyzedAt":"2026-09-01T14:24:59.842Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}