Saturday, February 4, 2012

Windows Update Error Code 0x80073712

I have several Windows 7 VMs which I use for various dev testing.  For the past 9 months all of them having been failing during Windows Update.  Most updates apply, but Service Pack 1 consistently errors during installation with the unknown error code 0x80073712.

Microsoft has a well written KB explaining steps you can take when this issue occurs: 

http://support.microsoft.com/kb/957310

I went through each step, running the checksur.exe and sfc.exe tools and downloading the stand alone Service Pack 1 installer.  All failed.  Next, I tried step 4 attempting to upgrade with the original Windows 7 CD.  Note, that the CD image must be the exact same used to install the original OS.  Same release flavor, Enterprise, in my case, and same SP level.  I thought I'd want to upgrade using the ISO image with SP1 built in, but no that refuses to even attempt an upgrade.

Finally, with the correct ISO image I got the clue that no previous error message had given:

  • There is not enough free space on partition (C:). A total of 16372 megabytes (MB) of free disk space is required. Try Disk Cleanup, or moving files to an external location such as a CD, DVD, or external hard drive, and then restart the installation.

I didn't have enough free space on the drive to install the Service Pack.  At first I was surprised because I had 10GB free, but in fact Win7 SP1 requires about 16GB to install.  Next, I was annoyed that this simple error wasn't raised by Windows Update in the first place.

I keep my drive space pretty sparse on my test VMs because they don't have many applications or data stored on them.  But a 40GB primary drive size is not enough for Windows 7.  I expanded it to 80GB using VMWare Workstation 8's built-in "Expand Disk" tools then used sysresccd and gparted to expand the NTFS partition across the whole disk.

Success!  Windows Update installs Service Pack 1 with no problems.  I hope this helps you or someone else avoid a half-day of IT induced profanity.