Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions docs/HELP.md
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,8 @@ Access the dashboard at `http://localhost:8080`.

### Windows Installation

> **WSL 2 prerequisite (Docker mode):** The Docker-based installation requires Windows Subsystem for Linux 2. Run `wsl --status` to verify WSL 2 is active. If WSL is not installed or needs updating, see [Troubleshooting Issue #10](#10-catastrophic-failure-when-updating-wsl-on-windows) for setup steps and fixes.

The PowerShell installer mirrors the same workflow on Windows.

```powershell
Expand Down Expand Up @@ -1939,6 +1941,74 @@ grep -i "warning" restore-diag.log
2. Enable garbage collection logging
3. Reduce concurrent subscriptions

#### 10. "Catastrophic failure" when updating WSL on Windows

**Context:** The Docker-based DevContainer and `install.ps1 -Mode Docker` workflows require
Windows Subsystem for Linux 2 (WSL 2). Attempting to install or update WSL may fail with:

```
Downloading: Windows Subsystem for Linux 2.6.3
Installing: Windows Subsystem for Linux 2.6.3
Catastrophic failure
```

**Causes:**
- Command was not run as Administrator (elevation is required)
- Windows Update is pending a reboot
- Corrupted WSL installation state
- Virtual Machine Platform Windows feature not enabled

**Resolution — try in order:**

1. **Run as Administrator**

Open PowerShell as Administrator and retry:
```powershell
wsl.exe --update
```

2. **Install or update from the Microsoft Store**

Search for "Windows Subsystem for Linux" in the Microsoft Store and click **Update** or **Install**.

3. **Install from GitHub releases (offline / behind firewall)**

Download the latest `.msixbundle` from the [WSL releases page](https://github.com/microsoft/WSL/releases)
and double-click to install, or install from an elevated PowerShell:
```powershell
Add-AppxPackage .\Microsoft.WSL_<version>_x64_ARM64.msixbundle
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The filename Microsoft.WSL_<version>_x64_ARM64.msixbundle in the Add-AppxPackage command might be misleading. Typically, MSIX bundles are specific to an architecture (e.g., _x64 or _ARM64), not a combined one. Please clarify that users should select the appropriate architecture-specific bundle from the GitHub releases page. For example, Microsoft.WSL_<version>_x64.msixbundle for x64 systems.

Suggested change
Add-AppxPackage .\Microsoft.WSL_<version>_x64_ARM64.msixbundle
Add-AppxPackage .\Microsoft.WSL_<version>_x64.msixbundle

Copy link

Copilot AI Mar 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This command example isn’t copy/paste runnable because it includes a <version> placeholder and a very specific filename. Consider either explicitly instructing the reader to replace it with the downloaded filename, or use a wildcard example (e.g., Add-AppxPackage .\Microsoft.WSL*.msixbundle) so the snippet works as-is.

Suggested change
Add-AppxPackage .\Microsoft.WSL_<version>_x64_ARM64.msixbundle
Add-AppxPackage .\Microsoft.WSL*.msixbundle

Copilot uses AI. Check for mistakes.
```

4. **Enable required Windows features first, then update**

```powershell
# Run as Administrator
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Restart-Computer
# After reboot, from an elevated PowerShell:
wsl --set-default-version 2
wsl --update
```

5. **Reinstall WSL from scratch**

```powershell
# Run as Administrator — replaces the existing WSL installation
wsl --install
Comment on lines +1997 to +1998
Copy link

Copilot AI Mar 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The note here is inaccurate: wsl --install does not “replace the existing WSL installation”; it typically no-ops if WSL is already installed. Consider changing this to an actual reset/uninstall sequence (e.g., wsl --shutdown, unregister distros if needed, uninstall the WSL app / disable features, reboot, then reinstall).

Suggested change
# Run as Administrator — replaces the existing WSL installation
wsl --install
# Run as Administrator — this will fully reset WSL and remove distros/data
# 1) Stop WSL
wsl --shutdown
# 2) (Optional but recommended) Remove broken distros
# WARNING: This deletes the selected distro and its Linux filesystem.
# Replace <DistroName> with a name from `wsl --list`.
# wsl --unregister <DistroName>
# 3) Disable WSL features
dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /norestart
dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
# 4) Reboot to complete feature removal
Restart-Computer
# 5) After reboot, repeat step 4 above to re-enable WSL features and run:
# wsl --set-default-version 2
# wsl --update

Copilot uses AI. Check for mistakes.
```

**Verify WSL 2 is active after fixing:**
```powershell
wsl --status # Should report WSL version 2
wsl --list --verbose # Lists installed distros with their WSL version
```

Once WSL 2 is working, Docker Desktop will use it automatically. Re-run the installer:
```powershell
.\build\scripts\install\install.ps1 -Mode Docker
```

### Logging

Logs are stored in the data directory under `_logs/`:
Expand Down
Loading