Windows 10 reports error 0x80070017 when a cyclic redundancy check fails — the data’s checksum does not match its contents, so the update installer rejects it. It is the digital equivalent of a tamper-evident seal: the seal is broken, and the installer will not proceed. What the code does not tell you is where the seal broke, and that is the entire troubleshooting task.
The candidates are few but consequential. A damaged download or poisoned cache is the common, harmless case — fixed in minutes. Bad disk sectors are the serious case — back up promptly. Faulty RAM is the sneaky case — invisible until tested. The procedure below works through them from easiest to most significant, with a definitive test at each step so you act on findings, not guesses.
If the CRC failures keep returning across unrelated updates, skip ahead mentally to the hardware tests — recurring corruption is hardware until proven otherwise.
Why this happens
- Transfer damage: Corrupt download failing integrity verification.
- Cache poisoning: Damaged fragments reused across retries.
- Bad sectors: Disk damage corrupting stored files.
- RAM bit flips: Memory faults damaging data in flight.
- Controller faults: Storage controller corrupting reads or writes.
- Thermal storage errors: Overheated drives making write errors.
- Interrupted writes: Earlier crashed updates leaving half-written files.
How to fix it
Work through these in order — diagnose first, then act.
Fix 1: Empty the update download cache
Start with the cheapest definitive test: if the corruption lives in the cache, a purge plus a fresh download resolves it completely, and you will know within one update cycle.
- Open an elevated Command Prompt.
- Run net stop wuauserv and net stop bits.
- Delete the contents of C:\Windows\SoftwareDistribution\Download.
- Run net start wuauserv and net start bits, then check for updates.
Fix 2: Run Disk Cleanup for space and debris
Cramped disks corrupt more: the filesystem strains to place large update files, and old damaged debris lingers. Cleaning up addresses both at once.
- Run Disk Cleanup as administrator on C:.
- Remove Temporary files, Windows Update Cleanup, and Delivery Optimization Files.
- Confirm at least 20 GB free afterward.
- Restart, then retry the update.
Fix 3: Reset the full update components
When a simple cache clear is not enough, reset the whole component set. This also rebuilds the update metadata database, which can itself carry the corruption.
- In an elevated Command Prompt, stop wuauserv, cryptSvc, bits, and msiserver.
- Rename SoftwareDistribution to SoftwareDistribution.old and catroot2 to catroot2.old.
- Restart all four services.
- Reboot and run Check for updates.
Fix 4: Run chkdsk on the system drive
The direct test for the bad-sector hypothesis. Chkdsk’s /r pass reads every sector, recovers what it can, and quarantines the dead ones — and its summary tells you whether the drive is healthy or dying.
- Run chkdsk C: /f /r in an elevated prompt and confirm the reboot scan.
- Let it complete fully, however long it takes.
- A few fixed errors is normal wear; growing bad-sector counts mean replace the drive.
- Back up first if the counts look bad — before any further updates.
Fix 5: Test memory with Windows Memory Diagnostic
RAM is the invisible corruptor: it damages data during the exact operations updates rely on, leaving no trace in logs. The built-in tester is the way to see it.
- Press Windows + R, type mdsched.exe, press Enter.
- Choose Restart now and check for problems.
- Do not interrupt the test; let all passes complete.
- Errors mean reseat or replace the memory — then retest before updating.
Fix 6: Try the manual catalog install
Installing the package by hand from the Microsoft Update Catalog takes a completely different download and staging path, which distinguishes path corruption from systemic hardware corruption.
- Find the KB number in Update history.
- Download the x64 .msu from the Update Catalog.
- Install directly and reboot when prompted.
- Matching CRC failure here confirms the hardware diagnosis — prioritize the disk and RAM findings.
Fix 7: Consider a repair install for systemic corruption
If SFC finds unfixable damage, chkdsk keeps finding new errors, or corruption appears outside updates too, the Windows installation itself is compromised and needs rebuilding.
- Back up personal files to external storage first.
- Mount the Windows 10 ISO and run setup.exe, choosing Keep personal files and apps.
- After the repair, run sfc /scannow once more to confirm a clean baseline.
- Resume normal updating; if problems persist on fresh storage, the RAM or drive needs replacement — see Microsoft’s support hub for clean-install steps.
Fix 8: Disable overclocking and scan for malware
CRC failures with no disk or network fault point at invisible corruptors: marginal memory timings that fail under sustained hashing, or malware patching downloads in transit. Test both hypotheses directly instead of guessing.
- In BIOS or UEFI setup, disable XMP/EXPO profiles and any CPU overclocking, returning everything to stock speeds.
- Boot into Windows and retry the update at stock speeds to test the overclock hypothesis.
- Run a Microsoft Defender Offline scan from Windows Security > Virus & threat protection > Scan options.
- If threats are found and removed, clear the update cache once more and retry on the clean system.
Closing
Windows 10’s 0x80070017 is the checksum doing its protective job, and your job is to find what keeps breaking the seal. The cache purge resolves the everyday cases; chkdsk and the memory test resolve the serious ones. Never let recurring CRC errors become background noise — each one is either a trivial cache problem or an early hardware warning, and the tests above tell you which within the hour. Related: the Windows 11 0x80070017 guide and our undoing changes stuck guide for the related stuck-rollback case.
