Stop Windows Update Stuck at 0%: 3 Fixes That Work

Windows Update stuck at 0% forever? Here's the order to fix it: restart the service, clear the cache, then reset components if needed.

You hit Check for updates, the spinner spins, and the percentage sits at 0% like it's waiting for a signal from Mars. I've seen this on Windows 10 21H2 and Windows 11 23H2, usually right after a fresh install or when the machine has been offline for a month. The cause is rarely one thing—it's a broken service state, a corrupted cache, or a component store that's given up. The fixes below go from least invasive to nuclear reset. Stop when it works.

The 30-Second Fix: Restart the Update Services

What's actually happening here is that the Windows Update service (wuauserv) and the Background Intelligent Transfer Service (BITS) can stop responding without crashing. They hang, and the update client just waits forever. A quick restart resets their state and often kick-starts a stuck download. You don't need admin for this if you use the GUI, but for the command line you do.

  1. Press Win + R, type services.msc, hit Enter.
  2. Scroll to Windows Update. Right-click and select Restart.
  3. Do the same for Background Intelligent Transfer Service.
  4. Go back to Settings > Windows Update and try again.

If the service won't restart and throws an error, you're dealing with something deeper. Skip to the advanced fix. But in maybe half the cases, this is all it takes.

The 5-Minute Fix: Clear the Download Cache

If the service restart didn't work, the corruption is likely in the C:\Windows\SoftwareDistribution folder. That's where Windows stores downloaded update files. When it gets filled with half-finished or corrupted files, the update client gets stuck trying to read them, and the percentage stays at 0 because it's actually hung on I/O, not on the network.

The reason step 3 works is that you're forcing the service to stop touching those files, then deleting them, then letting the service recreate a clean folder on next start. Don't skip the stop—deleting files while the service is running will give you a file-in-use error or, worse, a partial delete that makes things worse.

  1. Open an elevated Command Prompt (right-click Start > Terminal (Admin)).
  2. Run these commands one at a time:
net stop wuauserv
net stop bits
ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
net start wuauserv
net start bits

The ren command renames the folder instead of deleting it. That's intentional—if something goes wrong, you can roll back by deleting the old folder and renaming it back. After the services restart, Windows will create a fresh SoftwareDistribution folder automatically. Try the update again.

The 15-Minute Fix: Reset Windows Update Components

If you're still staring at 0%, the problem is deeper. The update components themselves—the service configuration, the registry entries, the security identifiers—are corrupted. This is common after a botched antivirus uninstall or a forced shutdown during an update. The built-in Windows Update Troubleshooter (Settings > System > Troubleshoot > Other troubleshooters) can fix some of this, but it's hit-or-miss. I've seen it fail on machines where the Cryptographic Services (CryptSvc) is disabled by a stubborn third-party tool.

The real fix is a manual reset. This resets the Windows Update service descriptions and re-registers the DLLs that handle update functionality. It's safe—you're not touching your personal files or installed apps—but it takes a few minutes and requires admin rights.

Step-by-Step Component Reset

  1. Open an elevated Command Prompt or PowerShell.
  2. Stop the services and rename the folders like before, but this time also stop CryptSvc and MSI Installer:
net stop wuauserv
net stop cryptSvc
net stop bits
net stop msiserver
ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 Catroot2.old
net start wuauserv
net start cryptSvc
net start bits
net start msiserver

Why rename catroot2? That's the catalog for signed drivers and update signatures. If it's corrupted, Windows can't validate any downloaded update, so it stalls at 0%. Renaming it forces a rebuild from scratch.

Re-register the Update DLLs

This is the part that actually fixes the deep corruption. Run these one by one. Some will say "module not found"—that's normal, ignore it.

regsvr32 /s atl.dll
regsvr32 /s urlmon.dll
regsvr32 /s mshtml.dll
regsvr32 /s shdocvw.dll
regsvr32 /s browseui.dll
regsvr32 /s jscript.dll
regsvr32 /s vbscript.dll
regsvr32 /s scrrun.dll
regsvr32 /s msxml.dll
regsvr32 /s msxml3.dll
regsvr32 /s msxml6.dll
regsvr32 /s actxprxy.dll
regsvr32 /s softpub.dll
regsvr32 /s wintrust.dll
regsvr32 /s dssenh.dll
regsvr32 /s rsaenh.dll
regsvr32 /s gpkcsp.dll
regsvr32 /s sccbase.dll
regsvr32 /s slbcsp.dll
regsvr32 /s cryptdlg.dll

Reset the Winsock and Proxy Settings

A broken network stack can also cause a permanent 0% because the update client can't reach Microsoft's servers. Even if regular browsing works, the update service uses a different path. Run:

netsh winsock reset
netsh winhttp reset proxy

Then reboot. The netsh winhttp reset proxy is the one people forget. If you've ever used a VPN or a proxy tool that left a stale proxy config, this is what clears it.

When None of This Works

If you've gone through all three and the update still sits at 0%, the problem is likely a corrupted system image. I'd run SFC and DISM before considering a repair install:

sfc /scannow
dism /online /cleanup-image /restorehealth

These take 10–20 minutes each, so that's why they're not in the main flow. If those come up clean and updates still fail, a repair install using the Windows Media Creation Tool is the last resort. Back up your files first—you're reinstalling Windows, just keeping your apps and settings.

One last thing: if this happens immediately after you've installed a fresh copy of Windows and you're on a corporate network, check with your IT admin. Some organizations push a GPO that points Windows Update to an internal WSUS server that's down. That'll show 0% every time, and no amount of local fixing will help.

Related Errors in Windows Errors
0XC0090003 Fix ERROR_BIZRULES_NOT_ENABLED (0XC0090003) in Windows 0XC0261003 Fix 0XC0261003: Monitor descriptor checksum invalid 0X0000201D Fix ERROR_PROMOTION_ACTIVE (0x0000201D) – Domain Controller Promotion Stuck 0X0000053C Fix ERROR_BAD_INHERITANCE_ACL (0x0000053C) in Windows

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.