{"record":{"id":"0ef2aab78b3bd3d8","repo":"lima-vm/lima","slug":"failed-to-read-instance-state-for-instance-q-bec","errorCode":null,"errorMessage":"failed to read instance state for instance %#q because no distro is installed,try running `wsl --install -d Ubuntu` and then re-running Lima","messagePattern":"failed to read instance state for instance %#q because no distro is installed,try running `wsl --install -d Ubuntu` and then re-running Lima","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/driver/wsl2/vm_windows.go","lineNumber":226,"sourceCode":"func getWslStatus(ctx context.Context, instName string) (string, error) {\n\tdistroName := \"lima-\" + instName\n\tout, err := executil.RunUTF16leCommand([]string{\n\t\t\"wsl.exe\",\n\t\t\"--list\",\n\t\t\"--verbose\",\n\t}, executil.WithContext(ctx))\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"failed to run `wsl --list --verbose`, err: %w (out=%#q)\", err, out)\n\t}\n\n\tif out == \"\" {\n\t\treturn limatype.StatusBroken, fmt.Errorf(\"failed to read instance state for instance %#q, try running `wsl --list --verbose` to debug, err: %w\", instName, err)\n\t}\n\n\t// Check for edge cases first\n\tif strings.Contains(out, \"Windows Subsystem for Linux has no installed distributions.\") {\n\t\tif strings.Contains(out, \"Wsl/WSL_E_DEFAULT_DISTRO_NOT_FOUND\") {\n\t\t\treturn limatype.StatusBroken, fmt.Errorf(\n\t\t\t\t\"failed to read instance state for instance %#q because no distro is installed,\"+\n\t\t\t\t\t\"try running `wsl --install -d Ubuntu` and then re-running Lima\", instName)\n\t\t}\n\t\treturn limatype.StatusBroken, fmt.Errorf(\n\t\t\t\"failed to read instance state for instance %#q because there is no WSL kernel installed,\"+\n\t\t\t\t\"this usually happens when WSL was installed for another user, but never for your user.\"+\n\t\t\t\t\"Try running `wsl --install -d Ubuntu` and `wsl --update`, and then re-running Lima\", instName)\n\t}\n\n\tvar instState string\n\twslListColsRegex := regexp.MustCompile(`\\s+`)\n\t// wsl --list --verbose may have different headers depending on localization, just split by line\n\tfor rows := range strings.SplitSeq(strings.ReplaceAll(out, \"\\r\\n\", \"\\n\"), \"\\n\") {\n\t\tcols := wslListColsRegex.Split(strings.TrimSpace(rows), -1)\n\t\tnameIdx := 0\n\t\t// '*' indicates default instance\n\t\tif cols[0] == \"*\" {\n\t\t\tnameIdx = 1","sourceCodeStart":208,"sourceCodeEnd":244,"githubUrl":"https://github.com/lima-vm/lima/blob/dd909d0973cd84fa35f9e1693181b4585ea616c1/pkg/driver/wsl2/vm_windows.go#L208-L244","documentation":"When `wsl --list --verbose` output indicates no installed distributions AND contains WSL_E_DEFAULT_DISTRO_NOT_FOUND, Lima concludes no Linux distro exists at all (not just this instance) and returns StatusBroken with guidance to install one.","triggerScenarios":"getWslStatus parses output containing 'Windows Subsystem for Linux has no installed distributions.' plus 'Wsl/WSL_E_DEFAULT_DISTRO_NOT_FOUND' while inspecting/deleting/starting an instance.","commonSituations":"Fresh Windows machine where WSL was enabled but `wsl --install` never completed; user unregistered all distros; Lima instance created before WSL setup finished.","solutions":["Run `wsl --install -d Ubuntu` and complete the distro first-boot setup","Verify `wsl --list --verbose` now lists a distro","Re-run `limactl start <instance>`"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Require a default distro before using Lima WSL2 driver\nconst out = execSync('wsl.exe --list --quiet').toString('utf16le');\nif (!out.trim()) throw new Error('No WSL distro installed; run `wsl --install -d Ubuntu`');","typeGuard":"null","tryCatchPattern":"try {\n  await limactlStart(inst);\n} catch (e) {\n  if (/no distro is installed/.test(String(e))) {\n    console.error('Run: wsl --install -d Ubuntu, complete setup, then retry');\n  } else throw e;\n}","preventionTips":["Complete `wsl --install -d Ubuntu` on every Windows user that runs Lima","Verify `wsl --list --verbose` shows a distro before `limactl create`","Avoid `wsl --unregister` of the last remaining distro"],"tags":["wsl2","missing-distro","setup"],"backgroundTag":"wsl-no-installed-distributions","analyzedSha":"dd909d0973cd84fa35f9e1693181b4585ea616c1","analyzedAt":"2026-09-01T14:24:59.842Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}