Why is Windows Update trying to install an update I don't need?

I have a Windows 7 system that currently has a single update pending:

Windows Internet Explorer 9 for Windows 7 for x64-based Systems

If I try to install the update, Windows Update will:

  1. Create a restore point
  2. Fail with the error: Code 9C48 Windows Update encountered an error.

The event log for the event reads:

Installation Failure: Windows failed to install the following update with error 0x80070643: Windows Internet Explorer 9 for Windows 7 for x64-based Systems.

Code 9C48 Windows Update encountered an unknown error.

If you search the web for that error, there are many other people with the exact same issue.
Sadly, I am unable to apply the proposed solutions to my case, because I just installed this system.

There is nothing on it, except Windows 7. I installed the system and ran through the updates.
I also did the exact same process with this machine several times over the past few days due to a long-term test we just started.

I didn't have any problems with any Windows Update on the previous installation runs and I know I didn't do anything different this time because I followed the installation procedures instructions which are to be used during the test.

How did this happen and how do I solve it?

Versions

The version of Internet Explorer 9 that is currently installed is: 9.0.8112.16421:
Internet Explorer 9 About dialog

Further Investigation

So, as I always like to do, I ran the update again while running Process Monitor and dug up further details.

WindowsUpdate.log

First of all, there is a Windows Update log file located at C:\Windows\WindowsUpdate.log which I didn't know about. But I fail to see any significant entry in it, maybe you're more lucky:

2012-04-10  22:46:58:017     956    728 AU  AU received approval from Ux for 1 updates
2012-04-10  22:46:58:017     956    728 AU  AU setting pending client directive to 'Progress Ux'
2012-04-10  22:46:58:095     956    728 AU  BeginInteractiveInstall invoked for Download
2012-04-10  22:46:58:095     956    728 AU  Auto-approving update for download, updateId = {B33ACEC1-3265-4D01-9C37-AC0892E95ED9}.100, ForUx=1, IsOwnerUx=1, HasDeadline=0, IsMinor=0
2012-04-10  22:46:58:095     956    728 AU  Auto-approved 1 update(s) for download (for Ux)
2012-04-10  22:46:58:110     956    728 AU  UpdateDownloadProperties: 0 download(s) are still in progress.
2012-04-10  22:46:58:110     956    728 AU  #############
2012-04-10  22:46:58:110     956    728 AU  ## START ##  AU: Download updates
2012-04-10  22:46:58:110     956    728 AU  #########
2012-04-10  22:46:58:110     956    728 AU    # Approved updates = 1
2012-04-10  22:46:58:110     956    728 AU  AU initiated download, updateId = {B33ACEC1-3265-4D01-9C37-AC0892E95ED9}.100, callId = {35DF928B-B428-4BAC-8C63-55295967EFBB}
2012-04-10  22:46:58:110     956    728 AU  Setting AU scheduled install time to 2012-04-11 01:00:00
2012-04-10  22:46:58:110     956    728 AU  Successfully wrote event for AU health state:0
2012-04-10  22:46:58:110     956    728 AU  Currently showing Progress UX client - so not launching any other client
2012-04-10  22:46:58:110     956    bb8 DnldMgr *************
2012-04-10  22:46:58:110     956    bb8 DnldMgr ** START **  DnldMgr: Downloading updates [CallerId = AutomaticUpdatesWuApp]
2012-04-10  22:46:58:110     956    bb8 DnldMgr *********
2012-04-10  22:46:58:110     956    bb8 DnldMgr   * Call ID = {35DF928B-B428-4BAC-8C63-55295967EFBB}
2012-04-10  22:46:58:110     956    bb8 DnldMgr   * Priority = 3, Interactive = 1, Owner is system = 0, Explicit proxy = 0, Proxy session id = 1, ServiceId = {9482F4B4-E343-43B6-B170-9A65BC822C77}
2012-04-10  22:46:58:110     956    bb8 DnldMgr   * Updates to download = 1
2012-04-10  22:46:58:110     956    bb8 Agent     *   Title = Windows Internet Explorer 9 for Windows 7 for x64-based Systems
2012-04-10  22:46:58:110     956    bb8 Agent     *   UpdateId = {B33ACEC1-3265-4D01-9C37-AC0892E95ED9}.100
2012-04-10  22:46:58:110     956    bb8 Agent     *     Bundles 1 updates:
2012-04-10  22:46:58:110     956    bb8 Agent     *       {6D9A90B7-FAF9-4A47-9EFE-A506264873B3}.100
2012-04-10  22:46:58:110     956    bb8 DnldMgr ***********  DnldMgr: New download job [UpdateId = {6D9A90B7-FAF9-4A47-9EFE-A506264873B3}.100]  ***********
2012-04-10  22:46:58:110     956    728 AU  Successfully wrote event for AU health state:0
2012-04-10  22:46:58:110     956    728 AU    # Pending download calls = 1
2012-04-10  22:46:58:110     956    728 AU  >##  RESUMED  ## AU: Download update [UpdateId = {B33ACEC1-3265-4D01-9C37-AC0892E95ED9}, succeeded]
2012-04-10  22:46:58:313     956    bb8 Agent   **  END  **  Agent: Downloading updates [CallerId = AutomaticUpdatesWuApp]
2012-04-10  22:46:58:313     956    bb8 Agent   *************
2012-04-10  22:46:58:313     956    718 AU  #########
2012-04-10  22:46:58:313     956    718 AU  ##  END  ##  AU: Download updates
2012-04-10  22:46:58:313     956    718 AU  #############
2012-04-10  22:46:58:313     956    718 AU  Setting AU scheduled install time to 2012-04-11 01:00:00
2012-04-10  22:46:58:313     956    718 AU  Successfully wrote event for AU health state:0
2012-04-10  22:46:58:313     956    718 AU  Currently showing Progress UX client - so not launching any other client
2012-04-10  22:46:58:313     956    718 AU  Successfully wrote event for AU health state:0
2012-04-10  22:46:58:313     956    aac AU  Getting featured update notifications.  fIncludeDismissed = true
2012-04-10  22:46:58:313     956    aac AU  No featured updates available.
2012-04-10  22:47:00:107     956    aac AU  BeginInteractiveInstall invoked for Install
2012-04-10  22:47:00:107     956    aac AU  Auto-approving update for install, updateId = {B33ACEC1-3265-4D01-9C37-AC0892E95ED9}.100, ForUx=1, IsOwnerUx=1, HasDeadline=0, IsMinor=0
2012-04-10  22:47:00:107     956    aac AU  Auto-approved 1 update(s) for install (for Ux), installType=1
2012-04-10  22:47:00:107     956    aac AU  #############
2012-04-10  22:47:00:107     956    aac AU  ## START ##  AU: Install updates
2012-04-10  22:47:00:107     956    aac AU  #########
2012-04-10  22:47:00:107     956    aac AU    # Initiating manual install
2012-04-10  22:47:00:107     956    aac AU    # Approved updates = 1
2012-04-10  22:47:00:107     956    aac AU  >##  RESUMED  ## AU: Installing update [UpdateId = {B33ACEC1-3265-4D01-9C37-AC0892E95ED9}]
2012-04-10  22:47:13:773    2232    9fc Handler   : WARNING: Exit code = 0x8024200B
2012-04-10  22:47:13:773     956    718 AU    # WARNING: Install failed, error = 0x80070643 / 0x00009C48
2012-04-10  22:47:13:773    2232    9fc Handler :::::::::
2012-04-10  22:47:13:773    2232    9fc Handler ::  END  ::  Handler: Command Line Install
2012-04-10  22:47:13:773    2232    9fc Handler :::::::::::::
2012-04-10  22:47:13:851     956    a7c Agent   *********
2012-04-10  22:47:13:851     956    a7c Agent   **  END  **  Agent: Installing updates [CallerId = AutomaticUpdates]
2012-04-10  22:47:13:851     956    718 AU  Install call completed.
2012-04-10  22:47:13:851     956    a7c Agent   *************
2012-04-10  22:47:13:851     956    718 AU    # WARNING: Install call completed, reboot required = No, error = 0x00000000
2012-04-10  22:47:13:851     956    718 AU  #########
2012-04-10  22:47:13:851     956    718 AU  ##  END  ##  AU: Installing updates [CallId = {FCFF2A5C-25AB-4FB9-AB2B-35C65CCA6A9F}]
2012-04-10  22:47:13:851     956    718 AU  #############
2012-04-10  22:47:13:851     956    718 AU  Install complete for all calls, reboot NOT needed
2012-04-10  22:47:13:851     956    718 AU  Setting AU scheduled install time to 2012-04-11 01:00:00
2012-04-10  22:47:13:851     956    718 AU  Successfully wrote event for AU health state:0
2012-04-10  22:47:13:851     956    498 AU  Getting featured update notifications.  fIncludeDismissed = true
2012-04-10  22:47:13:851     956    498 AU  No featured updates available.
2012-04-10  22:47:14:366     956    168 AU  No featured updates notifications to show
2012-04-10  22:47:14:366     956    168 AU  UpdateDownloadProperties: 0 download(s) are still in progress.
2012-04-10  22:47:14:366     956    168 AU  Triggering Offline detection (non-interactive)
2012-04-10  22:47:14:366     956    168 AU  AU setting pending client directive to 'Install Complete Ux'
2012-04-10  22:47:14:366     956    168 AU  Changing existing AU client directive from 'Progress Ux' to 'Install Complete Ux', session id = 0x1
2012-04-10  22:47:14:366     956    168 AU  Successfully wrote event for AU health state:0
2012-04-10  22:47:14:366     956    b78 AU  #############
2012-04-10  22:47:14:366     956    b78 AU  ## START ##  AU: Search for updates
2012-04-10  22:47:14:366     956    b78 AU  #########
2012-04-10  22:47:14:366     956    b78 AU  >##  RESUMED  ## AU: Search for updates [CallId = {0198DD3A-D7B0-48F5-A77D-795F8A1BDCE8}]
2012-04-10  22:47:16:097     956    718 AU    # 1 updates detected
2012-04-10  22:47:16:097     956    718 AU  #########
2012-04-10  22:47:16:097     956    718 AU  ##  END  ##  AU: Search for updates [CallId = {0198DD3A-D7B0-48F5-A77D-795F8A1BDCE8}]
2012-04-10  22:47:16:097     956    718 AU  #############
2012-04-10  22:47:16:097     956    718 AU  No featured updates notifications to show
2012-04-10  22:47:16:097     956    718 AU  Setting AU scheduled install time to 2012-04-11 01:00:00
2012-04-10  22:47:16:097     956    718 AU  Successfully wrote event for AU health state:0
2012-04-10  22:47:16:097     956    718 AU  Successfully wrote event for AU health state:0
2012-04-10  22:47:16:113     956    55c AU  Getting featured update notifications.  fIncludeDismissed = true
2012-04-10  22:47:16:113     956    55c AU  No featured updates available.
2012-04-10  22:47:18:780     956    bb8 Report  REPORT EVENT: {27479C66-E930-4F9C-AFF2-27EDD76DED8F}    2012-04-10 22:47:13:773+0200    1   182 101 {B33ACEC1-3265-4D01-9C37-AC0892E95ED9}  100 80070643    AutomaticUpdates    Failure Content Install Installation Failure: Windows failed to install the following update with error 0x80070643: Windows Internet Explorer 9 for Windows 7 for x64-based Systems.
2012-04-10  22:47:18:780     956    bb8 Report  CWERReporter::HandleEvents - WER report upload completed with status 0x8
2012-04-10  22:47:18:780     956    bb8 Report  WER Report sent: 7.5.7601.17514 0x80070643 B33ACEC1-3265-4D01-9C37-AC0892E95ED9 Install 101 Unmanaged
2012-04-10  22:47:18:780     956    bb8 Report  CWERReporter finishing event handling. (00000000)

WU-IE9-Windows7-x64.exe

The actual update that is executed is downloaded and stored at the following location:

C:\Windows\SoftwareDistribution\Download\Install\WU-IE9-Windows7-x64.exe

Executing that file manually, results in the following error message: enter image description here

IE9_main.log

The IE9 installer/updater also creates an own log file located at

C:\Windows\IE9_main.log

For the update session in question, the installer logged:

00:00.000: ====================================================================
00:00.016: Started: 2012/04/10 (Y/M/D) 23:10:53.897 (local)
00:00.032: Time Format in this log: MM:ss.mmm (minutes:seconds.milliseconds)
00:00.063: Command line: "C:\Windows\SoftwareDistribution\Download\Install\WU-IE9-Windows7-x64.exe" 
00:00.078: INFO:    Setup installer for Internet Explorer: 9.0.8112.16421
00:00.094: INFO:    Previous version of Internet Explorer: 9.0.8112.16443
00:00.110: INFO:    Checking if iexplore.exe's current version is between 9.0.6001.0...
00:00.125: INFO:    ...and 9.1.0.0...
00:00.141: INFO:    Maximum version on which to run IEAK branding is: 9.1.0.0...
00:00.156: ERROR:   A newer version of Internet Explorer is already installed on the system.
00:00.188: ERROR:   Internet Explorer version check failed.
01:03.789: INFO:    Setup exit code: 0x00009C48 (40008) - A more recent version of Internet Explorer is installed.
01:03.820: INFO:    Scheduling upload to IE SQM server: http://sqm.microsoft.com/sqm/ie/sqmserver.dll
01:03.852: INFO:    SQM Upload returned 403
01:03.867: INFO:    Cleaning up temporary files in: C:\Windows\TEMP\IE978E.tmp
01:03.883: INFO:    Unable to remove directory C:\Windows\TEMP\IE978E.tmp, marking for deletion on reboot.
01:03.898: INFO:    Released Internet Explorer Installer Mutex

Which pretty much confirms what the error message says when executing the update manually; it's simply already installed or even obsolete because a newer version is installed.

So, why does it try to keep installing the update?

About dialog

There is a problem with the version numbers indicated in the version of Internet Explorer that I have installed: enter image description here

The About dialog will identify my version of Internet Explorer to be 9.0.8112.16421 while the version information embedded in the binary signals a version of 9.0.8112.16443.
This problem was also detected by the updater, which causes it to abort (just in other words).

How this happens is unclear to me. But once you are in this spot, this seems very hard to get rid off.

Possible solutions?

  • Uninstalling Windows Internet Explorer 9 and manually installing the cached C:\Windows\SoftwareDistribution\Download\Install\WU-IE9-Windows7-x64.exe will result in the same error after applying all pending updates.
  • Applying the FixIt for the issue You receive “0x80070643” or “0x643” error codes when you try to install .NET Framework updates through Windows Update or Microsoft Updates will not resolve the issue.
  • Applying the suggested solution for the issue Error message when you try to install updates by using the Windows Update or Microsoft Update Web site: "0x80070003" will not resolve the issue.
  • Running the FixIt Automatically diagnose and fix common problems with Windows Update does report having resolved issues with Windows Update, but didn't resolve the issue.
  • Running the FixIt for the issue How to troubleshoot Windows Update or Microsoft Update when you are repeatedly offered an update does not resolve the issue. Neither with normal nor with aggressive settings.

  1. Make sure the downloaded files are proper, try re-downloading them by backing up and removing

    C:\Windows\SoftwareDistribution\Download
    

    Note that you might need to stop and start Windows Search for this to work.

  2. Your WindowsUpdate.log contains:

    Windows failed to install the following update with error 0x80070643: ...
    

    When searching this error online, I found suggestions here that you could try:

    http://support.microsoft.com/kb/976982 (MSI FixIt and .NET re-installion)

Other codes you receive are irrelevant as they are noting that Windows Update failed, not what the underlying fault was. Note how 0x80070643 is key here and it's most likely going to be something MSI related, given that it's also throwing a CLSID at us and mentions a native update. Something corrupted...


So, by now the problem seems to have resolved itself. I installed several machines today, following the same installation procedure, and now they all succeed.

Nevertheless, this morning I spoke to a Microsoft Support engineer and he told me that it was basically a synchronization issue and that I should just hide the update and forget about it.
From what I'm being told, resolving the problem so that the update isn't even offered as a candidate is very time consuming and will only result in the update not being installed, and the same can be achieved simply by not installing it (what a surprise).
He also noted that the code 9C48 in this context basically means the update is already installed/not required, which would match our observations.

Another interesting idea came from a business partner of ours.
He proposed that the issue only happened because when I was offered to install updates, after the initial installation of Windows, I chose to install all available updates. Even those that aren't checked by default:

enter image description here

He proposed that this leads to a problematic state which results in the error in question. Supposedly only installing mandatory and pre-selected updates will avoid the issue.

Sadly, because the problem can't be reproduced right now, I am unable to confirm this, but it sounds plausible.


OK, I think I may have found a solution and I'm posting it here before I've had a chance to test it.

  • Run KB971058 Fix-it. (not the one that pops-up, but the one in the actual page)
  • Make Internet Explorer 9 the default browser (very important).
  • Restart.
  • Uninstall Internet Explorer 9.
  • Restart and let Windows finish with the uninstall process.
  • Open an elevated Command Prompt, type the following command and press Enter.

    net user administrator /active:yes

  • Download IE9 full standalone (The Win7 x64 file I downloaded is ~35MBytes). (Link to 64bit US, Link to 32bit US, Link for UK)

  • Restart so we can install in safe mode.
  • Enter Safe Mode (plain) and enter with the Administrator account we enabled earlier.
  • Install IE9 from the standalone file.
  • Restart into Normal mode, and let the installation process finish.
  • Open Windows Updates, and click check for updates.
  • A new IE9 security update might appear for installation, but the optional IE9 update should be gone by now.
  • Install the security update normally.

This solution was taken from:
http://answers.microsoft.com/en-us/ie/forum/ie9-windows_7/cannot-install-ie9-error-code-9c48/374699c8-5c64-e011-8dfc-68b599b31bf5?page=2