Share via


Upgrade to Internet Explorer 11 fails with CRYPT_E_NOT_FOUND

 

 

Hi, my name is Deepak and today I will be talking about a common scenario with IE11 upgrade from earlier versions fails with CRYPT_E_NOT_FOUND.

This issue can happen because the IE11 installation terminated abruptly and the rollback did not complete causing several left over files and registry entries . There are several files and registry entries associated with a package which are created in the COMPONENTS hive and HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing in addition to IE specific entries and files.

Basically when the IE11 installation triggered the setup first stage the files on the disk. Staging refers to the binaries for the feature being present on the machine but not being installed on the machine, this means that the files are physically present on the system but are not in an active, useable state.

In this situation instead of staging the packages for installation, the installation tries to use the files in the folder C:\Windows\Servicing\Packages folder. The existing packages are invalid since there were not properly removed from the previous installation hence the installation exits with an error that the hash verification failed.

The CBS log for this looks like

2016-04-26 14:17:44, Info CSI 00000024 Component change list:
2016-04-26 14:17:44, Info CSI 00000025 Couldn't find the hash of component: Microsoft-Windows-IE-HTMLRenderingMedia, Version = 11.2.9600.16428, pA = PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 (10), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the catalog [l:192{96}]"\SystemRoot\WinSxS\Catalogs\XXXXXXXXXXX.cat".
2016-04-26 14:17:44, Error CSI 00000026@2016/4/26:06:17:44.692 (F) : Error 80092004 [Warning,Facility=FACILITY_NTSSPI,Code=8196 (0x2004)] originated in function CCSDirectTransaction::AddImplicationsToCatalogsAndVerifyComponentHashes expression: (null)
2016-04-26 14:17:44, Error CSI 0000002a (F) CRYPT_E_NOT_FOUND #410453# from Windows::COM::CPendingTransaction::IStorePendingTransaction_Analyze(...)[gle=0x80092004]
2016-04-26 14:17:44, Error CSI 0000002b (F) CRYPT_E_NOT_FOUND #409930# from Windows::ServicingAPI::CCSITransaction::ICSITransaction_Commit(Flags = 38 (0x00000026), pSink = NULL, disp = 0, coldpatching = FALSE)[gle=0x80092004]
2016-04-26 14:17:44, Error CSI 0000002c (F) CRYPT_E_NOT_FOUND #409929# 1217715 us from Windows::ServicingAPI::CCSITransaction_ICSITransaction::Commit(flags = 0x00000026, pSink = NULL, disp = 0)
[gle=0x80092004]

To fix this, we need to cleanup the existing IE11 installation. If you browse to C:\windows\servicing\packages, you will notice that there are a lot of files for IE11 and using each one of them to uninstall would be a tedious process. There is, however, a way to remove them in one go. The below command assists us in doing that.

 

FORFILES /P %WINDIR%\servicing\Packages /M Microsoft-Windows-InternetExplorer-*11.*.mum /c "cmd /c echo Uninstalling package @fname && start /w pkgmgr /up:@fname /quiet /norestart"

 

What is does is that it passes each IE 11 MUM file as an argument to pkgmgr which further process it to uninstall the package. Please note that this is applicable only for Windows Server 2008 R2/ Windows 7, Windows Server 2008.

 

NOTE : Please note that the machine needs to be rebooted post running the command.

 

If the MUM and CAT files for IE11 still exist in C:\windows\servicing\packages , they would have to be manually removed.

 

Deepak Gopaluni

Senior Support Engineer |Microsoft Windows Core

Disclaimer : This information is provided ‘as-is’ with no warranties