Environment:
Windows 11 Home (or Pro) 64-bit
Docker Desktop version 4.79.0+
WSL 2 enabled
Issue:
I am trying to run Docker Desktop on Windows 11, but the WSL 2 backend fails to start. When I try to run any WSL command (e.g., wsl --set-default-version 2 or simply wsl) in PowerShell, I receive the following error:
wsl: WSL installation appears to be corrupted (Error code: Wsl/CallMsi/Install/REGDB_E_CLASSNOTREG).
Press any key to repair WSL, or CTRL-C to cancel.
What I have tried:
Running
sfc /scannow– reports no integrity violations.Running
wsl --update– fails with the same error.Enabling/disabling "Windows Subsystem for Linux" and "Virtual Machine Platform" via Windows Features and restarting.
Uninstalling and reinstalling Docker Desktop.
None of these steps resolved the issue. The Docker Desktop interface shows "Starting..." indefinitely, and docker ps results in a connection error to the Docker daemon.
How can I permanently resolve this REGDB_E_CLASSNOTREG error and get Docker Desktop running with the WSL 2 backend?
Answer (Your Solution):
Root Cause:
The REGDB_E_CLASSNOTREG error indicates that the COM class registration for the WSL kernel driver is missing or corrupted in the Windows Registry. Standard Windows features toggling or sfc /scannow do not repair this specific registration. The only reliable fix is to forcibly re-register the WSL kernel components using the official Microsoft installer package.
The Fix (Step-by-Step):
Follow these steps exactly in the order given:
Enable Required Windows Features
Open Control Panel → Programs → Turn Windows features on or off.
Ensure the following checkboxes are checked:
Virtual Machine PlatformWindows Hypervisor Platform(Note: Sometimes called "Windows Hyper-V Platform" depending on your build)Windows Subsystem for Linux
Click OK and allow Windows to make the changes.
Restart Your Computer
- A reboot is mandatory for the feature changes to take effect.
Download the Official WSL2 Kernel Update
Go to the official Microsoft WSL releases page on GitHub:
https://github.com/microsoft/WSL/releasesScroll down to the Assets section of the latest release.
Download the installer package named:
wsl_update_x64.msi
(Direct link for convenience: https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi)
Install the Kernel Update
Double-click the downloaded
wsl_update_x64.msifile.Follow the installation wizard (click "Next" through the prompts) to install the update.
This step forcibly re-registers the required WSL kernel COM classes in the Windows Registry.
Verify WSL is Responsive
Open PowerShell as Administrator.
Run the command:
powershell
wsl --set-default-version 2Expected result: You should see
The operation completed successfully.(If you haven't installed a Linux distribution yet, it may also prompt you to install one, but it should not throw theREGDB_E_CLASSNOTREGerror).
Install a Linux Distribution (Mandatory for Docker)
Open the Microsoft Store.
Search for "Ubuntu" (or any WSL distribution like Debian).
Click Install and wait for the download to complete.
After installation, launch Ubuntu from the Start Menu.
Create a UNIX username and password when prompted (e.g.,
username: rajesh,password: password). Note: This password is only for the Linux subsystem and is independent of your Windows or Docker credentials.
Restart Docker Desktop
Quit Docker Desktop completely (right-click the system tray icon → Quit Docker Desktop).
Launch Docker Desktop again.
Wait for the bottom-left status to change from "Starting..." to "Engine running" (green).
Final Verification
Open a Command Prompt or PowerShell and run:
cmd
docker psExpected result: A clean table output (empty or showing existing containers) with no error messages.
Why this works:
The .msi installer from the Microsoft/WSL GitHub repository contains the complete kernel and driver registration packages. Unlike the Windows Features toggle (which only enables/disables the capability), the MSI explicitly overwrites the missing COM registry entries that cause the CLASS_E_CLASSNOTREG error. The subsequent installation of a distribution (Ubuntu) finalizes the user-mode environment required by Docker Desktop.
Additional Notes:
If you are on Windows 10/11 Home, you must use the WSL 2 backend—there is no Hyper-V fallback. This makes the MSI fix essential.
Once fixed, you can proceed to run your database containers (e.g.,
docker run --name postgres-db ...) without further WSL issues.