{"record":{"id":"0accd59b1a379ae5","repo":"lima-vm/lima","slug":"failed-to-delete-driver-instance-w","errorCode":null,"errorMessage":"failed to delete driver instance: %w","messagePattern":"failed to delete driver instance: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/instance/delete.go","lineNumber":46,"sourceCode":"\t\tif err := unregister(ctx, inst); err != nil {\n\t\t\treturn fmt.Errorf(\"failed to unregister %#q: %w\", inst.Dir, err)\n\t\t}\n\t}\n\tif err := os.RemoveAll(inst.Dir); err != nil {\n\t\treturn fmt.Errorf(\"failed to remove %#q: %w\", inst.Dir, err)\n\t}\n\n\treturn nil\n}\n\nfunc unregister(ctx context.Context, inst *limatype.Instance) error {\n\tlimaDriver, err := driverutil.CreateConfiguredDriver(ctx, inst, 0)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to create driver instance: %w\", err)\n\t}\n\n\tif err := limaDriver.Delete(ctx); err != nil {\n\t\treturn fmt.Errorf(\"failed to delete driver instance: %w\", err)\n\t}\n\tserver.Stop(inst.Dir, true)\n\n\treturn nil\n}\n","sourceCodeStart":28,"sourceCodeEnd":52,"githubUrl":"https://github.com/lima-vm/lima/blob/dd909d0973cd84fa35f9e1693181b4585ea616c1/pkg/instance/delete.go#L28-L52","documentation":"unregister in pkg/instance/delete.go successfully created the driver, but limaDriver.Delete(ctx) failed while tearing down driver-managed resources (disks, network interfaces, ssh config). The instance directory is kept so the operation can be retried.","triggerScenarios":"unregister(ctx, inst) calls limaDriver.Delete(ctx) at delete.go:45 and it returns an error — e.g. qcow2/disk file already gone or locked, vzvirt network device busy, or hypervisor API rejecting the delete.","commonSituations":"Disk image mounted or in use by another process, leftover network interfaces from a crashed VM, running delete twice concurrently, or WSL2/HVF backend reporting stale resources.","solutions":["Read the wrapped driver error to see which resource teardown failed.","Ensure no process uses the VM's disk (check qemu/vz/WSL processes) and retry `limactl delete`.","Stop forcibly first: `limactl stop -f <instance>` then delete.","If resources are already gone, manually remove the instance dir (`rm -rf ~/.lima/<instance>`)."],"exampleFix":"// before\nlimactl delete myvm\n// after\nlimactl stop -f myvm && limactl delete myvm","handlingStrategy":"retry","validationCode":"// ensure nothing holds the disk image before delete\nif locked, _ := fileLocked(filepath.Join(inst.Dir, \"basedisk\")); locked {\n    return errors.New(\"disk in use; stop the VM first\")\n}","typeGuard":null,"tryCatchPattern":"err := instance.Delete(ctx, inst, false)\nif err != nil && strings.Contains(err.Error(), \"failed to delete driver instance\") {\n    time.Sleep(2 * time.Second)\n    err = instance.Delete(ctx, inst, false) // retry once for transient locks\n}\nreturn err","preventionTips":["Stop the instance (or force-stop) before delete","Check for orphaned qemu/vz/WSL processes holding the disk","Avoid running concurrent deletes on the same instance"],"tags":["driver","instance-delete","resource-cleanup"],"backgroundTag":"driver-delete-failed","analyzedSha":"dd909d0973cd84fa35f9e1693181b4585ea616c1","analyzedAt":"2026-09-01T14:24:59.842Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}