HomeTechOps

Windows

Windows Update stuck downloading or won't install

Windows Update frozen at 0% or 100%, or failing to install on Windows 11 24H2/25H2? The supported fix order — troubleshooter, free space, reset the update components (SoftwareDistribution/catroot2), DISM+SFC — and when to install the KB by hand.

Evidence from the screen

Reference images and diagrams. Click any image to view full resolution.

The Windows 11 Settings Windows Update page showing 'You're up to date', an available preview update, the Pause updates control, Update history, and Advanced options.
Settings → Windows Update: where to pause updates and reach Update history. First-party screenshot (Windows 11 25H2).
The Windows Update history page listing recently installed quality updates and .NET security updates by KB number and install date, with the Uninstall updates entry.
Update history lists installed KBs by number and date — and is where you uninstall a bad one. First-party screenshot (Windows 11 25H2).

Problem summary

I'm here because Windows Update is stuck — frozen at 0% or 100%, looping on 'downloading', or failing right at install. The calm read: a download that sits for a while can just be a slow connection or a large cumulative update, so give it time first, then work the supported repair order rather than reaching for registry hacks. The ladder is: run the Windows Update troubleshooter, confirm free disk space and a stable connection, reset the Windows Update components (rename `SoftwareDistribution` and `catroot2`), repair system files with DISM then SFC, and only if all that fails, install the update by hand from the Microsoft Update Catalog. If a specific error code is showing, decode it on Windows Update error codes, decoded; if your PC won't restart cleanly mid-update, see Windows won't boot.

Operator snapshotEvidence first
First proof

Give it real time first — note the percentage, wait, and let it ride through one restart.

Screen to open

net stop wuauserv && net stop bits → ren %systemroot%\SoftwareDistribution SoftwareDistribution.bak → ren %systemroot%\System32\catroot2 catroot2.bak → net start wuauserv && net start bits

Expected signal

A large update finishing on its own; the percentage moves or the install completes after the reboot.

Stop boundary

Don't force-shutdown a genuinely-installing update.

Layer path

1Windows Update is a pipeline: detect → download (into the SoftwareDistribution cache, validated against catroot2 signatures) → stage → install → finalize on restart. A 'stuck' update is one stalled link in that pipeline, and 'stuck' is not the same as 'slow' — a large cumulative on a thin connection legitimately sits at one percentage for a while, and the post-download install continues across a reboot.
2The supported repair order goes from gentle to firm: run the troubleshooter, confirm space and connectivity, reset the update components (a clean SoftwareDistribution/catroot2 cache), then repair the component store the update installs into with DISM+SFC. Each step is non-destructive to your files, and you only escalate when the prior step didn't move it.
3The escape hatch when the update client itself is the problem is to bypass it: download the exact KB from the Microsoft Update Catalog and install the .msu by hand. That, plus checking release-health for a known issue, is what separates a genuinely broken update from a bad local cache.
Runbook

Step-by-step runbook

Start here. Do each check in order, compare it to the expected result, and stop when the evidence explains the failure or the safe stop point applies.

1

Rule out 'slow, not stuck'

Check: Note the percentage, leave the PC on and connected for up to an hour, and let it complete one restart.

Expected result: The update finishes on its own — large cumulatives just take time.

If not: If it's still frozen or loops back to the same place, treat it as stuck and continue.

Safe stop: Don't force-shutdown a genuinely-installing update.

2

Run the troubleshooter and free space

Check: Run the Windows Update troubleshooter, confirm ~20 GB free on C:, and ensure a stable, non-metered connection (pause VPN).

Expected result: The troubleshooter clears a stalled service/cache, or you find and fix a space/connection cause.

If not: If it still stalls, reset the update components.

3

Reset the Windows Update components

Check: In an elevated prompt stop wuauserv and bits, rename SoftwareDistribution and catroot2, restart the services, and reboot.

Expected result: Windows rebuilds a clean update cache and re-downloads the update.

If not: If it still fails, the component store is likely corrupt — repair it next.

4

Repair system files

Check: Run DISM /Online /Cleanup-Image /RestoreHealth, then sfc /scannow, reboot, and retry the update.

Expected result: Corruption-type errors clear and the update installs.

If not: If DISM/SFC can't repair, plan an in-place repair-install (Reset → Keep my files keeps your data).

5

Install by hand or wait for the fix

Check: If Windows Update still won't deliver it, download the KB from the Microsoft Update Catalog and install the .msu. If release-health lists it as a known issue, pause updates and wait for the resolving KB.

Expected result: The update installs directly, or you avoid a known-broken one until it's fixed.

If not: If even the .msu fails, revisit disk space and component-store health before escalating.

Safe stop: Don't leave security updates paused indefinitely — resume once it's resolved.

Decision tree

Decision tree

If: Stuck at a percentage but recently started, connection is slow.

Then: Likely just a slow/large download, not a fault.

Action: Leave it; check back in an hour. Switch to Ethernet to speed a big cumulative.

Safe stop: Don't reset components on an update that's simply downloading slowly.

If: Troubleshooter didn't help and it still won't download/install.

Then: The local update cache is likely corrupt.

Action: Reset the Windows Update components: stop wuauserv/bits, rename SoftwareDistribution and catroot2, restart the services, reboot.

If: It errors with a corruption-type code (0x80073712 / 0x800f0831).

Then: The component store the update installs into is damaged.

Action: Run DISM /Online /Cleanup-Image /RestoreHealth then sfc /scannow, reboot, retry.

If: It errors with a disk-space code (0x80070070) or 'needs more space'.

Then: Not enough room to download/stage.

Action: Free ~20 GB on C: (Storage Sense / Disk Cleanup / remove Windows.old), then retry.

Safe stop: Don't disable the pagefile to free space.

If: Windows Update simply won't deliver the update after all repairs.

Then: The update client/path is the blocker, not the package.

Action: Download the KB from the Microsoft Update Catalog and install the .msu by hand.

If: Release-health lists your symptom as a known issue.

Then: It's the build, not you.

Action: Apply the resolving KB if available; otherwise pause updates briefly and wait for the fix.

Safe stop: Don't keep retrying a known-broken update — pause and wait for the fix.

Evidence

Evidence table

SymptomEvidence to collectLikely layerNext action
Progress bar frozen at the same % for a long time.Time since it started; connection speed; update size in history.Slow/large download, or a stalled BITS transfer.Wait first; if truly stuck, run the troubleshooter then reset components.
Repeated 'failed to install', rolls back on restart.The exact error code; whether it's a corruption or space code.Corrupt cache/component store, or disk space.Reset components, then DISM+SFC; free space if it's a space code.
'We need more space' / 0x80070070.Free space on C:; size of Windows.old and the update.Insufficient disk space.Free ~20 GB (Storage Sense / Disk Cleanup / Windows.old), retry.
Download never starts or 0x8024xxxx errors.Network/VPN state; Windows Update service status.Connection/download-manager failure.Fix connectivity, ensure the service runs, reset components, retry.
Reference

Commands and settings paths

Reset the Windows Update components

net stop wuauserv && net stop bits → ren %systemroot%\SoftwareDistribution SoftwareDistribution.bak → ren %systemroot%\System32\catroot2 catroot2.bak → net start wuauserv && net start bits

Where: Elevated Command Prompt

Expected: The download/signature caches are renamed and rebuilt clean; Windows re-downloads the update fresh after a reboot.

Failure means: If a rename fails with 'access denied', the services didn't stop — stop them first (or use Services.msc), then rename.

Safe next step: Reboot and retry the update; delete the .bak folders later once it's working.

Repair the component store, then system files

DISM /Online /Cleanup-Image /RestoreHealth → sfc /scannow

Where: Elevated terminal (reboot after)

Expected: DISM repairs the store SFC draws from; SFC then repairs protected system files, clearing corruption-type update errors.

Failure means: If DISM can't reach a source or SFC reports unrepairable files, an in-place repair-install is the next step.

Safe next step: Reboot and retry the update before anything bigger.

Install the update by hand (bypass the client)

Download the KB from catalog.update.microsoft.com → run the .msu

Where: Microsoft Update Catalog in a browser, then the downloaded file

Expected: The update installs directly, sidestepping a broken Windows Update client/cache.

Failure means: If the .msu also fails, the cause is the component store/disk, not the client — repair those first.

Safe next step: Match the KB number and your architecture (x64/ARM64) exactly.

Hardware boundary

Hardware and platform boundary

Change only when

  • Add or free system-drive space (target ~20 GB headroom) if updates repeatedly stall on space — the most common real 'hardware' cause of stuck updates.
  • A wired/Ethernet connection for large feature updates if Wi-Fi keeps interrupting the download.

Evidence that matters

  • Enough free space on C: for the update to download and stage.
  • A stable, non-metered connection (VPN paused during the update).
  • An admin account and the latest servicing-stack update installed.

Evidence that does not matter

  • Third-party 'update fixer' / 'Windows repair' utilities — the built-in troubleshooter, component reset, and DISM+SFC cover the same ground without the risk.
  • Registry 'tweaks' to force updates — they cause more breakage than they fix.

Avoid

  • Force-powering-off a PC that's genuinely installing an update.
  • Disabling the pagefile or Windows Update service to 'speed things up'.
  • Renaming SoftwareDistribution/catroot2 without stopping the services first.
  • Leaving security updates paused long-term after a one-off stuck update.

Related tool/checklist

Use the linked tool when you need a guided plan from your exact symptoms instead of a static checklist.

Device setup troubleshooter

Related problems

Last reviewed

2026-06-02 · Reviewed by HomeTechOps. Reviewed against Microsoft's troubleshoot-problems-updating-windows page (troubleshooter, the net stop / rename SoftwareDistribution+catroot2 reset, DISM+SFC), the disk-space guidance, and release-health; separates 'slow' from 'stuck', orders repairs gentle-to-firm, and ends with the Microsoft Update Catalog manual install rather than registry hacks.

Sources/assumptions

  • Assumes Windows 11 24H2 (build 26100.x) or 25H2 (build 26200.x); the update-component reset and DISM/SFC steps are the same on both since they share a servicing branch.
  • The troubleshooter location, the net stop / rename SoftwareDistribution+catroot2 sequence, the DISM-then-SFC order, and the free-space guidance follow Microsoft Support and Microsoft Learn current to mid-2026.
  • Manual install from the Microsoft Update Catalog is the documented fallback when Windows Update itself can't deliver the package; managed/domain devices may have update policies that change this.

Source-backed checks

HomeTechOps turns official docs and conservative safety rules into a shorter runbook. These links are the source trail for the page direction.