What does HRESULT 0x80004023 (CO_E_MSI_ERROR) mean?

 
Previous Next
CO_E_RELOAD_DLL CO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT

CO_E_MSI_ERROR

COM activation encountered a Windows Installer failure

CO_E_MSI_ERROR is HRESULT 2147500067 (0x80004023) from winerror.h. The documented description is “A Microsoft Software Installer error was encountered.” The value must be interpreted at advertised COM registration or activation-on-demand backed by Windows Installer.

Windows Installer could not repair, install, or configure the component required for activation. The operational record needs the native value, symbolic constant, component build, and call phase; the message alone is insufficient.

Where the result appears

  • This result may surface in advertised COM registration or activation-on-demand backed by Windows Installer.

Separate caller state from runtime and server state first; otherwise cleanup and retry may target the wrong generation of the operation.

Typical causes and interpretation

Common cause categories are: installation media is missing; repair is blocked by policy; package state is inconsistent; elevation or reboot is required. Each possible cause of this result predicts different outputs and recovery behavior, which should be verified explicitly.

Key distinction: Windows Installer could not repair, install, or configure the component required for activation.

Correct handling and recovery

The appropriate recovery is to capture the underlying MSI code, repair the product through supported deployment tooling, and avoid repeatedly triggering self-repair from the application. Repeat the operation only after the failed condition has changed and the caller can distinguish a duplicate effect.

Practical scenario

Activation of an advertised class starts repair, but the cached MSI source is unavailable; enterprise deployment restores the source and repairs the product.

An automated test should verify raw HRESULT, output ownership, cleanup behavior, and the absence of an unsafe automatic retry.

Difference from related HRESULTs

REGDB_E_CLASSNOTREG says registration is absent; this result says activation attempted installer recovery and that recovery failed.

The comparison matters operationally: one result may permit fallback while the other requires repair, cancellation, or state reconciliation.

References


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