Windows · Windows Server  ·  low  ·  Core Windows faults

0x80070002 / 0x80070003 — Windows Update cannot find a file

The update cache has a partial or mismatched download, so the installer looks for files the manifest promised and does not find them.

What you see

Updates download, then fail at install with 0x80070002. Retrying downloads the same update again and fails the same way.

What is actually wrong

A corrupted SoftwareDistribution cache, usually from an interrupted download, a full disk, or a machine forced off mid-update.

Codes and articles

0x800700020x80070003ERROR_FILE_NOT_FOUNDKB971058

Start here — find out which fix applies

A script that runs the 1 inspection command from the write-up below and prints what each one returned. It reads the machine and changes nothing — every command that could write, delete, start or stop is excluded from it by construction. Run this first, then pick the fix its output points at.

Download the read-only diagnosticchanges nothing · safe to run before reading

No warranty. Use at your own risk - JbTecWiz accepts no liability. Read it before you run it, and have a backup.

The fix

Reset the Windows Update cache
Elevated PowerShell10 minuteslow riskreversible

Standard first move for almost any Windows Update failure that is not a disk-space or component-store problem.

  1. Stop the services that hold the cache open.

    PowerShell
    Stop-Service -Name wuauserv, bits, cryptsvc, msiserver -Force
  2. Rename the cache folders rather than deleting them.

    PowerShell
    Rename-Item C:\Windows\SoftwareDistribution SoftwareDistribution.oldRename-Item C:\Windows\System32\catroot2 catroot2.old

    Renaming is reversible and takes the same amount of time as deleting. Windows recreates both folders on next start.

  3. Start the services again.

    PowerShell
    Start-Service -Name cryptsvc, bits, msiserver, wuauserv
  4. Check for updates again. The first scan will be slower than usual because the catalogue is being rebuilt.

  5. Once updates install cleanly, delete the .old folders to reclaim the space.

    PowerShell
    Remove-Item C:\Windows\SoftwareDistribution.old -Recurse -ForceRemove-Item C:\Windows\System32\catroot2.old -Recurse -Force
Confirm it workedUpdates install without the error and the folders have been recreated.
PowerShell
Get-Item C:\Windows\SoftwareDistribution | Select-Object FullName, CreationTime
If you need to undo itStop the services, delete the newly created folders, rename the .old ones back.
Download this fix as a PowerShell script1 step you do yourself · asks before each step

No warranty. Use at your own risk - JbTecWiz accepts no liability. Read it before you run it, and have a backup.

Where this stops. This write-up was written and checked by hand. It says what each step changes, how to confirm it worked and how to reverse it, and anything destructive is flagged before you reach it. If it does not match what your machine is doing, search the Support Centre for the exact code or message — and when something needs a person, get in touch.