WSL kernel stuck at 5.15 – cannot update due to dual installation conflict (Windows Features + WindowsApps)
Environment
|
|
| Windows Version |
Microsoft Windows 11 25H2 [10.0.26200.7840] |
| WSL Version |
2.4.11.0 (reported by wsl --version) |
| Kernel Version |
5.15.167.4-microsoft-standard-WSL2 |
| Distro |
Ubuntu 24.04 |
| Architecture |
x64 |
Problem
WSL was originally installed via Windows Features (the legacy method). Later, the MSI/Store package was also installed, resulting in two conflicting WSL installations coexisting:
Get-Package | Where-Object { $_.Name -like "*Windows Subsystem*" }
Name Version ProviderName
---- ------- ------------
Windows Subsystem for Linux 2.4.10.0 msi
Windows Subsystem for Linux... 1.0.27 msi ← legacy Windows Feature
Windows Subsystem for Linux... 5.10.102.1 msi ← legacy kernel
The legacy LxssManager service (from Windows Features) cannot be removed, blocking all kernel updates.
Steps to reproduce
- Have WSL originally installed via Windows Features (legacy method)
- Run
wsl --update or wsl --update --pre-release
- Observe error:
Checking for updates.
Updating Windows Subsystem for Linux to version: 2.6.3.
The older version of Windows Subsystem for Linux cannot be removed. Contact your technical support group.
Update failed (exit code: 1603).
Error code: Wsl/UpdatePackage/ERROR_INSTALL_FAILURE
Attempted workarounds (all failed)
wsl --update → error 1603
wsl --update --pre-release → error 1603
- Manual MSI install (
wsl.2.6.3.0.x64.msi via msiexec) → installs to WindowsApps but wsl --version still shows old version
msiexec /x {GUID} /qn for all three legacy entries → triggers "network resource unavailable" dialog asking for original wsl.msi (which no longer exists)
- Registry removal of all three Uninstall keys → popup dialog persists on next boot, kernel unchanged
- DISM disable/enable of
Microsoft-Windows-Subsystem-Linux and VirtualMachinePlatform features + reinstall → WSL 2.6.3 installed in WindowsApps, but wsl --version still reports 2.4.11 / kernel 5.15
- Replacing
C:\Windows\System32\wsl.exe with the 2.6.3 binary from WindowsApps → wsl --version shows 2.6.3 and kernel 6.6, but running any distro fails with:
Error code: Wsl/Service/0x800706f4
This confirms the underlying LxssManager service is still the old version and incompatible with the new wsl.exe.
winget upgrade --id Microsoft.WSL → "No available upgrade found"
Current state
C:\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForLinux_2.6.3.0_x64__8wekyb3d8bbwe exists and contains wsl.exe version 2.6.3.0
C:\Windows\System32\wsl.exe is a HardLink pointing to C:\Windows\WinSxS\amd64_microsoft-windows-lxss-wsl_...\wsl.exe (version 10.0.26100.1) and does not redirect to the WindowsApps binary
- The legacy
LxssManager service remains active and prevents the new WSL service from taking over
- Ubuntu 24.04 distro runs fine on kernel 5.15 – data is intact
Expected behavior
wsl --update should replace the legacy Windows Feature installation with the modern MSI/Store package, including updating the kernel from 5.15 to 6.6.
Impact
Cursor IDE terminal sandbox requires kernel >= 6.2 and is non-functional:
"Terminal sandbox is not supported on Linux kernel 5.15. Kernel 6.2 or later is required for sandboxing."
Question
Is there an officially supported migration path from the legacy Windows Features WSL installation to the modern MSI/Store package without a full reinstall (export/unregister/import)?
If not, please consider adding a migration tool or improving the error message to guide users through the correct steps.
WSL kernel stuck at 5.15 – cannot update due to dual installation conflict (Windows Features + WindowsApps)
Environment
wsl --version)Problem
WSL was originally installed via Windows Features (the legacy method). Later, the MSI/Store package was also installed, resulting in two conflicting WSL installations coexisting:
The legacy
LxssManagerservice (from Windows Features) cannot be removed, blocking all kernel updates.Steps to reproduce
wsl --updateorwsl --update --pre-releaseAttempted workarounds (all failed)
wsl --update→ error 1603wsl --update --pre-release→ error 1603wsl.2.6.3.0.x64.msiviamsiexec) → installs to WindowsApps butwsl --versionstill shows old versionmsiexec /x {GUID} /qnfor all three legacy entries → triggers "network resource unavailable" dialog asking for originalwsl.msi(which no longer exists)Microsoft-Windows-Subsystem-LinuxandVirtualMachinePlatformfeatures + reinstall → WSL 2.6.3 installed in WindowsApps, butwsl --versionstill reports 2.4.11 / kernel 5.15C:\Windows\System32\wsl.exewith the 2.6.3 binary from WindowsApps →wsl --versionshows 2.6.3 and kernel 6.6, but running any distro fails with:This confirms the underlying
LxssManagerservice is still the old version and incompatible with the newwsl.exe.winget upgrade --id Microsoft.WSL→ "No available upgrade found"Current state
C:\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForLinux_2.6.3.0_x64__8wekyb3d8bbweexists and containswsl.exeversion 2.6.3.0C:\Windows\System32\wsl.exeis a HardLink pointing toC:\Windows\WinSxS\amd64_microsoft-windows-lxss-wsl_...\wsl.exe(version 10.0.26100.1) and does not redirect to the WindowsApps binaryLxssManagerservice remains active and prevents the new WSL service from taking overExpected behavior
wsl --updateshould replace the legacy Windows Feature installation with the modern MSI/Store package, including updating the kernel from 5.15 to 6.6.Impact
Cursor IDE terminal sandbox requires kernel >= 6.2 and is non-functional:
Question
Is there an officially supported migration path from the legacy Windows Features WSL installation to the modern MSI/Store package without a full reinstall (export/unregister/import)?
If not, please consider adding a migration tool or improving the error message to guide users through the correct steps.