What does Windows error code 1638 (ERROR_PRODUCT_VERSION) mean?

 
Previous Next
ERROR_PATCH_PACKAGE_UNSUPPORTED ERROR_INVALID_COMMAND_LINE

ERROR_PRODUCT_VERSION

Another version of this Windows Installer product is already installed.

ERROR_PRODUCT_VERSION is Win32 error 1638 (0x666). Windows Installer has detected existing product registration that conflicts with the package being installed. This is not resolved reliably by deleting files or changing the display version. ProductCode, UpgradeCode, package authoring, installation context, and upgrade sequencing determine whether the new package performs maintenance, a small update, a minor upgrade, or a major upgrade.

Why version conflicts occur

  • a package reuses a ProductCode where a major upgrade requires a new one
  • the bootstrapper launches installation instead of maintenance or upgrade mode
  • a per-user and per-machine registration conflict is hidden from the user interface
  • 32-bit and 64-bit variants use incorrect product identity relationships
  • stale registration remains after an incomplete uninstall or deployment rollback

Installer identity to record

Capture ProductCode, UpgradeCode, PackageCode, product version and language, install context, package platform, detected related products, command line, transforms, and verbose log. Preserve the package hash. A marketing version string or executable file version is not enough to explain 1638.

Diagnostic sequence

Enumerate installed products in the relevant user and machine contexts using supported Windows Installer APIs or deployment inventory. Compare product and upgrade codes with the new MSI. Inspect the Upgrade table and major-upgrade scheduling, including version range inclusivity and removal timing.

Determine the intended servicing model. If this is maintenance for the same product, invoke the correct repair or reinstall path. If it is a major upgrade, author unique product identity and reliable related-product removal. Avoid broad registry cleanup tools that can damage the Windows Installer cache and other products.

Resolution for users and authors

Users should modify or uninstall the existing product through its supported entry, then install the intended version if the vendor does not provide an upgrade path. Package authors must test upgrade and downgrade scenarios across per-user/per-machine and x86/x64 contexts. Bootstrapper logic should detect the installed relationship and choose a clear maintenance, upgrade, or block message.

Difference from a newer-version block

Error 1638 says another version is already registered under a conflicting product relationship. Some packages separately detect downgrades through launch conditions or custom logic. The MSI log and product codes determine which case occurred; display names alone do not.

Example

A vendor increments the product version but ships the new MSI with the old ProductCode and no valid minor-upgrade command. A clean machine installs successfully, while upgraded machines return 1638. Authoring a proper major upgrade with a new ProductCode and shared UpgradeCode fixes deployment.

References


Looking for a different code? Search another status or error code.