Windows Update Stuck? Fixes by Stage: Scan, Download, Install
Work out which stage is stuck: checking for updates, downloading, or installing. Then check free space (Microsoft asks for 20 GB on 64-bit Windows), restart, and reset the SoftwareDistribution and catroot2 folders. Microsoft publishes no exact wait time, so the signal to act is a percentage that has not moved after you have waited and rechecked.
Microsoft gives no time limit, so use the stage and the percentage
Microsoft's update troubleshooting page says install time depends on connection speed, network settings and update size, and it gives no minutes or hours to wait. It advises rechecking for updates if progress stays at the same percentage. This page does not invent a number either.
A practical rule built on that advice is to note the percentage and the clock, wait, then look again. If the number and the disk light are both unchanged on the second look, move to the fix for that stage below.
Checking for updates never ends: the two services behind Settings
The Settings app talks to the Update Orchestrator service, which talks to the Windows Update service. If either stops, the page can spin on "Checking" forever. Microsoft's steps: close and reopen Settings, then open services.msc and confirm that "Update State Orchestrator" and "Windows Update" are running.
In the log, error 0x80070426 (ERROR_SERVICE_NOT_ACTIVE) means the Microsoft Account Sign In Assistant (wlidsvc) is not running, which blocks feature updates from being found. Microsoft's fix is to set that service back to its default start type, Manual.
Download stuck at 0% or never moves
Stuck downloads have network causes more often than disk causes. Microsoft's list has three worth checking.
Date and time also matter: turn on automatic time and time zone and sync the clock.
- Windows Defender Firewall service stopped: error 0x800706D9 with the download at 0% means the service must be enabled in Services.msc. Microsoft does not support stopping it.
- A proxy set only for Internet Explorer: Windows Update uses WinHTTP, so run netsh winhttp import proxy source=ie or netsh winhttp set proxy ProxyServerName:PortNumber.
- A proxy that blocks HTTP RANGE requests: error 0x80d05001 (DO_E_HTTP_BLOCKSIZE_MISMATCH) or high CPU while downloading points here. Updates use partial range requests (RFC 7233).
A worked example: 128 GB laptop, 14 GB free, stuck at 30%
Take a 64-bit Windows laptop with a 128 GB drive and 14 GB free. Microsoft says 64-bit Windows needs 20 GB free (16 GB for 32-bit). The laptop is 6 GB short, so the update cannot unpack no matter how long you wait.
Free the 6 GB first: uninstall unused apps, move videos to an external drive, and empty the cache in the next section (the SoftwareDistribution folder is part of it). Restart. Then plug in power, unplug docks and external drives as Microsoft advises, and press Check for updates again. If the same laptop had 40 GB free, space would be ruled out and you would go straight to the folder reset.
Reset the update cache: SoftwareDistribution and catroot2
This is Microsoft's own reset. In an administrator Command Prompt stop the services, rename the two folders, then start the services again. Renaming is safer than deleting because you can rename them back.
Microsoft's simpler version for the download cache: stop the Windows Update service in services.msc, empty C:\Windows\SoftwareDistribution, restart the service.
- net stop bits and net stop wuauserv
- Rename C:\Windows\SoftwareDistribution to SoftwareDistribution.bak
- Rename C:\Windows\System32\catroot2 to catroot2.bak
- net start bits and net start wuauserv, then check for updates
Repair Windows files in the right order: DISM, then SFC
If a reset does not help, repair the component store. Run DISM.exe /Online /Cleanup-image /Restorehealth first, which takes several minutes, then sfc /scannow in the same window and wait for 100%. Microsoft's System File Checker page says to run them in that order.
The SFC messages mean different things. "Did not find any integrity violations" means nothing is missing. "Found corrupt files but was unable to fix some of them" means you should read %windir%\Logs\CBS\CBS.log. If Windows Update itself is broken, DISM can read a repair source with /Source and /LimitAccess.
Where the logs are, and what a pause in them means
Run Get-WindowsUpdateLog in PowerShell to merge the .etl trace files into one readable WindowsUpdate.log. It is a static copy, so run it again after a new attempt. The raw traces live in C:\Windows\Logs\WindowsUpdate, and the Update Orchestrator trace is UpdateSessionOrchestration.etl in C:\ProgramData\USOShared\Logs.
Microsoft's log guide reads timestamps for you: a pause during a sync can mean a network problem even if the scan succeeds, and a long pause near the end of a scan can mean a supersedence chain issue. The Orchestrator log is the one to open when updates are found but the download never starts, or when they are installed but the restart never comes.
Errors that fix themselves, and one that does not
Errors 0x248001 and 0x8024402d mean Microsoft's service is shedding load. Microsoft says users need to do nothing, since the device retries later. Do not reset anything for these.
A machine managed by WSUS may be offered only what the server approves. To see the source, run $MUSM = New-Object -ComObject "Microsoft.Update.ServiceManager" and then $MUSM.Services. If the source is not Windows Update or Microsoft Update, ask your admin.
Stuck at restart or boot after an update: the recovery path
If Windows no longer starts after an update, Microsoft's startup guide uses the recovery environment. Run DISM /image:C:\ /get-packages to list pending updates, remove one with DISM /image:C:\ /remove-package /packagename:<name>, then run DISM /Image:C:\ /Cleanup-Image /RevertPendingActions.
If it still will not start, the next steps in the same guide are renaming windows\winsxs\pending.xml to pending.xml.old and deleting the pendingxmlidentifier value in the component hive. These edit the registry, so back it up and use this only when the safer steps failed.
Startup Repair writes its log to %windir%\System32\LogFiles\Srt\Srttrail.txt. If the PC keeps landing on the recovery screen, Bcdedit /set {default} recoveryenabled no breaks the loop.
Common mistakes, and who this suits
Powering off mid-install is the classic one; wait and recheck first. Deleting the folders while the services run fails or leaves a half state, so stop wuauserv and bits first. Turning off antivirus for a long time is another. Microsoft suggests pausing it for a short period, such as 10 minutes or 1 hour, then switching it back on.
If you are staring at an error code or a stuck screen and want it explained, Crade can read the screen and say what the code means. These steps suit home PCs; on a work PC managed by an IT team, pause and ask them.
Questions people ask
How long should I wait before Windows Update is really stuck?
Microsoft gives no fixed time. It says install time depends on connection speed, network settings and update size, and advises rechecking for updates when progress stays at the same percentage.
How much free space does Windows Update need?
Microsoft's troubleshooting page says 16 GB for 32-bit Windows and 20 GB for 64-bit Windows.
Is it safe to delete the SoftwareDistribution folder?
Microsoft lists it as a fix. Stop the Windows Update service (and BITS) first, then empty or rename the folder to SoftwareDistribution.bak, and restart the services. Renaming lets you undo it.
What do I run first, SFC or DISM?
DISM first: DISM.exe /Online /Cleanup-image /Restorehealth, then sfc /scannow. Microsoft's System File Checker page gives that order.
What does error 0x80070426 mean?
It is ERROR_SERVICE_NOT_ACTIVE. Microsoft's log example shows the Microsoft Account Sign In Assistant (wlidsvc) not running, which stops feature updates from being found. Set it back to Manual.