Some installers register under the 32-bit uninstall hive even on 64-bit Windows. Check both views before assuming the entry is gone.

If the vendor ships a cleanup utility, run it before manual registry deletes. That order reduces the chance of stranding services or drivers.

When both x86 and x64 entries exist, uninstall the bitness you actually installed last; mismatched order sometimes resurrects the ghost entry.

Separate “missing files” from “missing uninstaller.” A ghost entry often still points at a valid ProductCode even though the UninstallString target was deleted. Note the GUID-style identifiers in the registry and compare them with any MSI log you have; mismatched GUIDs mean you are looking at a different edition than the installer expects.

On 64-bit Windows, 32-bit registrations can live under WOW6432Node while native 64-bit entries sit beside them without that suffix. Treat them as parallel phone books—clearing only one side is why Control Panel still claims the app exists.

After a failed uninstall, run the vendor’s current installer again; many ship a “cleanup” or “remove all components” mode that understands their own ProductCode better than manual key deletes. Manual edits are the last resort, not the opening move.

If Windows Update or Store components are involved, pause and read Microsoft guidance first. Deleting the wrong servicing key can break component-based servicing; stick to the product-specific subtree the vendor documents.

When the OS finally agrees the product is gone, reboot and reinstall using the newest build from the vendor site—not an old USB copy—so ProductCode alignment matches what their support scripts assume.

ARPCache can mask reality for one reboot cycle. If Control Panel still lists a removed product immediately after cleanup, reboot once before chasing more registry deletes; cached UI entries sometimes lag behind the actual uninstall hive.

Side-by-side x86/x64 pairs often share a single shortcut. Deleting the shortcut from Public\Desktop without removing both uninstall entries is how “ghost” shortcuts reappear pointing at nothing.

When MSI-based suites leave a broken upgrade path, run the vendor’s “cleanup” executable with logging, then compare remaining ProductCodes against their support matrix. Blind GUID hunting in the registry scales poorly on shared PCs—see Multi-user Windows PCs.

If you still see “already installed” after vendor cleanup, capture msiexec /i product.msi verbose logs from a throwaway VM with the same OS patch level; differences in servicing stacks often explain impossible installs on only one machine.