Article ID: 971187 - Last Review: August 5, 2009 - Revision: 2.0

How to fix MSI software update registration corruption issues

Expand all | Collapse all

Problem description

After you install software updates, repairs or uninstalls for certain products may fail. If you have MSI logging enabled, the following lines are found in the log:

Couldn't find local patch ''. Looking for it at its source.

MainEngineThread is returning 1612
Also, when you look in the registry, you may find that the software update cache registration is missing from the following registry subkey:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<SQUID>

To have us fix this problem for you, go to the "Fix it for me" section. To fix this problem yourself, go to the "Let me fix it myself" section.

Fix it for me

To fix this problem automatically, click the Fix it button or link. Click Run in the File Download dialog box, and then follow the steps in the Fix it wizard.


Fix this problem
Microsoft Fix it 50123



Note this wizard may be in English only; however, the automatic fix also works for other language versions of Windows.

Note if you are not on the computer that has the problem, save the Fix it solution to a flash drive or a CD and then run it on the computer that has the problem.

Next, go to the "Did this fix the problem?" section.

Let me fix it myself

Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756  (http://support.microsoft.com/kb/322756/ ) How to back up and restore the registry in Windows
To fix this problem, follow these steps:
  1. Confirm that the product is affected. To do this, follow these steps:
    1. Find the software update registration of the product by opening the following registry subkey:

      HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches

      Under this subkey, there will be a subkey for every software update that was applied to the product.
    2. For each subkey that is in the following format, perform the following step: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches\<PatchSQUID>
      • Verify that the following subkey exists:

        HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<PatchSQUID>

        If the subkey is missing, the product is affected. Continue to step 2.

        If the subkey exists, verify that the LocalPackage string value is set correctly, and that the package referenced by the LocalPackage string value also exists.
        1. If the LocalPackage string value or referenced package is missing, the product is affected. Continue to step 2.
        2. If the referenced package exists and no additional action is required.
  2. Re-create software update cache registry details. To do this, follow these steps:

    1. Search the %windir%\installer\*.msp for the software update that you tried to install. Verify that the software update has the correct Patch GUID in the Summary Information Stream and targets the correct product GUIDs.
      Note Because this directory serves as the cache for per-user installations and per-machine installations, you can simulate a software update in this directory by using a per-user installation.
    2. Create the following subkey: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<PatchSQUID>

      Note It is a security risk to re-create the software update cache registry. However, this is the only way to repair the corruption. You can reduce the security risk by making sure that the software update is the correct software update. To do this, verify the checksum of the software update.
    3. Create a LocalPackage string value in the registry subkey that you created step 2,b. Make sure that the LocalPackage string value is set to the path of the software update.


  3. Delete remaining software update references. To do this, follow these steps:
    1. Open the following subkey, and then remove <PatchSQUID> from the "AllPatches" multi-sz value: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches
    2. Delete the following registry subkey: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches\<PatchSQUID>
    3. Delete the following registry subkey: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<PatchSQUID>

      Note If this subkey is missing, skip this step.
    4. If the product was installed per-machine, follow these steps:
      1. Open the following subkey: HKEY_LOCAL_MACHINE\Software\Classes\Installer\Products\<ProductSQUID>\Patches
        1. If the <PatchSQUID> string value is present, delete it.
        2. If the <PatchSQUID> string value is present in the "Patches" Multi-sz value, delete the <PatchSQUID> string value.
      2. If following registry subkey is present, delete it:HKEY_LOCAL_MACHINE\Software\Classes\Installer\Patches\<PatchSQUID>
    5. If the product was installed per-user unmanaged:
      1. Open the following registry subkey: HKEY_CURRENT_USER\Software\Microsoft\Installer\Products\<ProductSQUID>\Patches
        1. If the <PatchSQUID> string value is present, delete it.
        2. If the <PatchSQUID> from the “Patches” Multi-sz value is present, remove it.
      2. If following registry subkey is present, delete it: HKEY_CURRENT_USER\Software\Microsoft\Installer\Patches\<PatchSQUID>
    6. If the product was installed per-user managed:
      1. Open the following registry subkey: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Managed\<SID>\Installer\Products\<ProductSQUID>\Patches
        1. If the <PatchSQUID> string value is present, delete it.
        2. If the <PatchSQUID> from the “Patches” Multi-sz value is present, remove it.
      2. If the following registry subkey is present, delete it:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Managed\<SID>\Installer\Patches\<PatchSQUID>

Did this fix the problem?

Check whether the problem is fixed. If the problem is fixed, you are finished with this article. If the problem is not fixed, you can contact support (http://support.microsoft.com/contactus) .

APPLIES TO
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Standard
  • Windows Web Server 2008
  • Windows Vista Business
  • Windows Vista Enterprise
  • Windows Vista Home Basic
  • Windows Vista Home Premium
  • Windows Vista Starter
  • Windows Vista Ultimate
Keywords: 
kbsurveynew kbmsifixme kbfixme KB971187
 

Article Translations