How to fix Windows Update Error 0x80004005 in Windows 10

These days a lot of users are installing the recently released the Windows 10 Anniversary Update, which brings a lot of useful features we already mentioned here. If you stumbled upon this post, it might be the case that you hit this dreadful error message while trying to install this or other updates through Windows Update:

Feature update to Windows 10, version 1607 – Error 0x80004005

This can be due to a number of reasons, the most common ones being the following:

  • Activation problems (your copy of Windows 10 is not a legitimate one or has not been activated properly).
  • Device Driver issues (there is a driver that is preventing Windows Update to move forward).
  • Windows Update issues (this can happen once in a while).
  • Corrupted Windows files such as opencl.dll (this is quite frequent for user that installed the Windows 10 Update 1511).

Luckily enough, there are some workarounds for each one of these scenarios.

Activation Problems

The first thing we should do is to ensure that windows has been activated properly. If we look at this official Microsoft KB article, we can see that error 0x80004005 can be fixed in the following way: select the Start button, then select Settings > Update & security > Activation, then select Troubleshoot to run the Activation troubleshooter. For more info about the troubleshooter, take a look at this page.

Driver issues

The next thing we need to do is to check that there are no device drivers that are halting the Windows Update process, preventing it to run for subsequent updates. This is a quite common scenario  and the fix is usually easy enough:

  • Open Control Panel > Device Manager (click to show all items if you don’t see it) and check if there’s either a Unknown Device or a named one with a yellow triangle on it: this is the device that is most likely preventing your Windows Update to work.
  • If you can identify the unknown or damaged device, you can try to check on the web to see if you can find an updated driver for Windows 10, install it and get it working. This might or might not solve your issue, depending if Windows Update thinks it can do better than what you just did (i.e. install a most recent version than the one you found). If that’s the case, you might need to temporarily prevent a driver update from reinstalling by reading this official Microsoft KB article. You’ll basically need to download a tool that can be used to “hide” these updates and get it running. This will give you the chance to temporarily hide the big one (for example, the Windows 10 Update 1607, aka the Anniversary Update) and concentrate on getting the other ones fixed. If this won’t work, you could also try to do the opposite, such as hide the small ones and try to install the other one first. Either choices might or might not be able fix the issue.

Windows Update issues

If the issue persist, the problem might be related to a problem with Windows Update itself. If that’s the case, we can try to fix it with the Windows update troubleshooter:

  • Press the Windows Key, then type troubleshoot and hit Enter.
  • Select View all on the left panel and run the Windows update troubleshooter from the list.
  • Click Advanced, ensure that the Apply repairs automatically option is checked and select Run as administrator.
  • Click Next and follow the on-screen instructions to run the troubleshooting process to its completion.

Once done, we can check if we can now install our planned Windows Updates without errors.

If the above method didn’t work, we can try the following procedure to manually force a more aggressive Windows Update restore:

IMPORTANT NOTE: Although the following procedure won’t be harmful for our system, it will erase the Windows Update history log: if this won’t solve our issue, we might as well choose to restore it by renaming the   and   folders back.
  • Press Windows Key + X.
  • Click on Command Prompt (Admin). Click Yes if the UAC (User Account Control) popup appears.
  • Type the following commands into the Command Prompt, hitting Enter after each one of them:

Ensure that all the commands completes without errors: if something throws an error – such as Authorization Denied – you might need to change your file permissions or ownership before continuing with the commands.

As soon as you did that, close the Command Prompt window and check if you can install the updates.

Corrupted Windows Files

If none of the above solutions worked (or are not applicable to your system) you might have hit the worst case scenario: the corruption of the opencl.dll system file, which seems to cause a lot of problems to Windows 10 such as installing most windows updates – including the Anniversary Update. This has been reported to be quite a widespread problem, even though it doesn’t cause any other significative harm on the system, thus being a rather subtle one.

To check if our opencl.dll file is corrupt we can use one of the following command-line tools:

  • The System File Checker (SFC).
  • The Deployment Image Servicing and Management (DISM).

Luckily enough, both of them are built-in in Windows 10, meaning that we can use them for free without having to install any additional software.

Using the SFC Tool

  • Press Windows Key + X.
  • Click on Command Prompt (Admin).
  • Type the following and press Enter afterwards:

After the scan has been completed (it might take up to 20 minutes), check for the Command Prompt to see the result summary. If everything is Ok, you should read the following:

Windows Resource Protection did not find any integrity violations.

If that’s not the case, check the   file and look for the following lines near the end:

Hashes for file member \SystemRoot\WinSxS\wow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.0.10586.0_none_3dae054b56911c22\opencl.dll do not match actual file [l:10]”opencl.dll”

Could not reproject corrupted file [l:23 ml:24]”\??\C:\WINDOWS\SysWOW64″\[l:10]”opencl.dll”; source file in store is also corrupted

If these lines are present, it means that our opencl.dll file is indeed corrupt.

Using the DISM Tool

  • Press Windows Key + X.
  • Click on Command Prompt (Admin).
  • Type the following and press Enter afterwards:

Once the scan is complete, check the   file – or, if you can’t find it, the   file – and look for the following lines near the end:

CSI Payload Corrupt wow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.0.10586.0_none_3dae054b56911c22\opencl.dll
Repair failed: Missing replacement payload.

If these lines are present, it means that our opencl.dll file is indeed corrupt.

Repair the corrupt opencl.dll file

To get rid of the problem we need to regenerate the opencl.dll file from a valid Windows 10 ISO image. We can either do it manually or use the SFCFix tool, developed by the Sysnative.com Windows technical community, that will apply the fix automatically with the help of a ZIP file containing the required files.

Doing it manually

  • Download the Media Creation Tool from the following official URL.
  • Use it to download the Windows 10 Pro ISO with to a temp folder (such as  ).
  • Use the 7-zip utility (which can be downloaded here for free) to extract the file   to the   folder.
  • Convert the   file to   with the following command:
  • Generate the index and windows version informations of the WIM image (it will be used by the subsequent command):
  • Restore the corrupted files from the WIM image:

After we did all that, we can reboot the system (required) and then run another   to repair and check the system files.

Using the SFCFix tool

  • Click here to download the SFCFix tool from its official location (or unpack it from this locally hosted archive): once done, move the executable (unpack it if necessary) to the Windows Desktop.
  • Click here to download the SFCFix support files: the tool will need them to repair/replace the corrupted files. You will need to register to the forum, but it’s free and completely safe (e-mail confirmation is not required to download the file). Alternatively, you can get the same file here without having to register. Move the zip file to the Windows Desktop, without unzipping it.
  • Close all open programs, then drag the zip file over the executable file and then release it.

As soon as you do that, SFCFix will launch and  start applying the fix. Once done, it will generate a   log file to the Windows Desktop containing the results. If the file has been repaired, you will see something like the following:

Successfully processed all directives.
SFCFix version 3.0.0.0 by niemiro has completed.

NOTE: This issue is also very well documented on the following ServerFault thread: if you’re unable to solve this issue, I strongly suggest you to read that.

Well, that’s it for now: happy update!

 

 

RELATED POSTS

About Ryan

IT Project Manager, Web Interface Architect and Lead Developer for many high-traffic web sites & services hosted in Italy and Europe. Since 2010 it’s also a lead designer for many App and games for Android, iOS and Windows Phone mobile devices for a number of italian companies.

View all posts by Ryan
  • phk

    Thanks for the detailed article, but it seems there are 2 little things missing in your “repair manually with dism” section. The first commandline is missing the compress option after /compress which should be /compress:fast for example as this option is mandatory.

    The second is maybe some font color problem? under “restore corrupted files” section, there is a :wim in white letters between the other displayed black letters, which could be a problem if one does not copy & paste.