Errors 0x800703e6 and 998 in DISM and Windows Update

Symptoms

Installing Windows Updates results in the error 0x800703e6 on a Windows 10 or 11 computer. The user is unable to install new updates or uninstall a previously installed update.

Attempting to repair (in-place upgrade) the Windows installation using the Media Creation tool or the Update Assistant tool may fail with the error 0x800703e6.

The System File Checker (sfc /scannow) fails to run; it throws the following error even though the Windows Modules Installer is able to start correctly:

Windows Resource Protection could not start the repair service.

The DISM tool (“DISM /Online /Cleanup-Image /RestoreHealth”) fails to complete. It generates the following error:

Error 998 Invalid access to memory location.

As a result, you’re unable to repair your Windows image using DISM/SFC or repair installation using MCT or ISO.

The CBS and DISM logs have the following entries:

CBS.log

Info   CBS Failed during startup processing, continuing with Trusted Installer execution [HRESULT = 0x800703e6]
Info   CBS Failed to load WCP DLL: C:\Windows\WinSxS\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_10.0.19041.1220_none_7e21bc567c7ed16b\wcp.dll [HRESULT = 0x800703e6 - ERROR_NOACCESS]
Info   CBS Failed to initialize the Core DLL: C:\windows\winsxs\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_10.0.19041.1220_none_7e21bc567c7ed16b\\cbscore.dll [HRESULT = 0x800703e6 - ERROR_NOACCESS]
Info   CBS Failed to initialize CBS class factory. [HRESULT = 0x800703e6 - ERROR_NOACCESS]

DISM.log

Error DISM DISM Package Manager: PID=24488 TID=21204 Failed finalizing changes. - CDISMPackageManager::Internal_Finalize(hr:0x800703e6)
Error DISM DISM Package Manager: PID=24488 TID=21204 Failed processing package changes - CDISMPackageManager::StartComponentCleanupEx(hr:0x800703e6)
Error DISM DISM Package Manager: PID=24488 TID=21204 Failed to start component cleanup. - CPackageManagerCLIHandler::ProcessCmdLine_CleanupImage(hr:0x800703e6)
Error DISM DISM Package Manager: PID=24488 TID=21204 Failed while processing command cleanup-image. - CPackageManagerCLIHandler::ExecuteCmdLine(hr:0x800703e6)
Error DISM DISM.EXE: DISM Package Manager processed the command line but failed. HRESULT=800703E6

Cause

The error code 0x800703E6 (“ERROR_NOACCESS”) means “Invalid access to memory location.” The above symptoms occur if the servicing stack DLLs, namely, wcp.dll or cbscore.dll, or both are corrupt. As a result, DISM/SFC or the repair installation will fail to run.

Opening the folder containing the DLL and checking the DLL properties show that the DLL is corrupt. Here’s a case where the CbsCore.dll module got corrupted. The file’s properties tab is partially empty.

cbscore.dll corrupt - file information



As you can see in the above screenshot, the file information is empty in the Details tab. This shows that the module has become corrupted.

Resolution

To fix the DISM and servicing errors 0x800703E6 and 998, extract fresh copies of wcp.dll and/or cbscore.dll from the ISO or any other reputable source.

  1. Download the appropriate version of wcp.dll or CbsCore.dll from WinBIndex or extract from the ISO.
  2. Place the downloaded files in the “C:\Files” folder, which you need to create manually.
  3. Start Command Prompt (cmd.exe) as TrustedInstaller by using the AdvancedRun tool (See Instructions).
  4. In the TI Command Prompt, run the following commands:

    Replacing CbsCore.dll (if mentioned in the CBS log)

    cd /d "C:\windows\winsxs\{CBSCORE.DLL_FOLDER_NAME_AS_IN_CBS_LOG}"
    move cbscore.dll C:\
    copy C:\Files\cbscore.dll

    Replacing wcp.dll (if mentioned in the CBS log)

    cd /d "C:\windows\winsxs\{WCP.DLL_FOLDER_NAME_AS_IN_CBS_LOG}"
    move wcp.dll C:\
    copy C:\Files\wcp.dll
    exit

    Now, open an admin Command Prompt and see if you’re able to run the following commands:

    dism /online /cleanup-image /restorehealth
    sfc /scannow

    If those commands run correctly, you should now be able to repair/update Windows.


    One small request: If you liked this post, please share this?

    One "tiny" share from you would seriously help a lot with the growth of this blog. Some great suggestions:
    • Pin it!
    • Share it to your favorite blog + Facebook, Reddit
    • Tweet it!
    So thank you so much for your support. It won't take more than 10 seconds of your time. The share buttons are right below. :)

Ramesh Srinivasan is passionate about Microsoft technologies and he has been a consecutive ten-time recipient of the Microsoft Most Valuable Professional award in the Windows Shell/Desktop Experience category, from 2003 to 2012. He loves to troubleshoot and write about Windows. Ramesh founded Winhelponline.com in 2005.

Leave a Comment