What does HRESULT 0x80110412 (COMADMIN_E_BADREGISTRYPROGID) mean?

 
Previous Next
COMADMIN_E_NOREGISTRYCLSID COMADMIN_E_AUTHENTICATIONLEVEL

COMADMIN_E_BADREGISTRYPROGID

COMADMIN_E_BADREGISTRYPROGID is the failure HRESULT 0x80110412 (signed decimal -2146368494, unsigned decimal 2148598802). Its severity bit is 1, facility is 17 (FACILITY_ITF), and the facility-specific code field is 0x0412.

COM registration, type library, and component installation: exact meaning of COMADMIN_E_BADREGISTRYPROGID

The component ProgID registration is missing, malformed, or inconsistent. COM+ reads class-registration metadata and rejects the ProgID relationship for the component.

AllStat records this condition as “The component's progID is missing or corrupt”.

Where COMADMIN_E_BADREGISTRYPROGID occurs

The COM+ catalog presents a split view of RegDB and Windows class/type-library registration, so the failing stage must be identified before editing either store. In the specific case of COMADMIN_E_BADREGISTRYPROGID, capture CLSID, ProgID, VersionIndependentProgID, registry view, and the binary that owns those entries.

Evidence to collect before repair

  • For COMADMIN_E_BADREGISTRYPROGID, preserve CLSID/IID/LIBID values and 32/64-bit registry view; it anchors the failure to the real administration object.
  • Evidence for COMADMIN_E_BADREGISTRYPROGID should include component, type-library, and proxy/stub paths with hashes, captured before a repair changes state.
  • Collect loader or DllRegisterServer/DllGetClassObject result when diagnosing COMADMIN_E_BADREGISTRYPROGID; without it the symbolic HRESULT is underdetermined.
  • The COMADMIN_E_BADREGISTRYPROGID investigation needs COM+ installation ErrorInfo and relevant event records so the exact failing boundary remains reconstructable.

Diagnostic sequence for COMADMIN_E_BADREGISTRYPROGID

  • For COMADMIN_E_BADREGISTRYPROGID, verify the exact binary architecture and dependencies.
  • At the COMADMIN_E_BADREGISTRYPROGID boundary, load and inspect the matching type library without substituting another version.
  • The next COMADMIN_E_BADREGISTRYPROGID diagnostic action is to repair registration using the component installer.
  • To isolate COMADMIN_E_BADREGISTRYPROGID, install rather than import when full interface metadata is required.
  • For COMADMIN_E_BADREGISTRYPROGID, repopulate the catalog and test class activation after repair.

Retry and recovery

Repair registration with the component installer rather than inventing a ProgID value in the registry.

Difference from nearby COMADMIN results

COMADMIN_E_NOREGISTRYCLSID means the class identity is missing; this value means the ProgID portion is unusable.

Practical administration scenario

An installer writes the CLSID but leaves a broken ProgID-to-CLSID mapping, causing COM+ component installation to fail.

ProgID-specific consistency checks

For COMADMIN_E_BADREGISTRYPROGID, compare the ProgID and VersionIndependentProgID relationships with the exact CLSID being installed. Check for malformed text, a ProgID that maps to another class, versioned and version-independent names that disagree, or entries written only to the wrong architecture view. Preserve the original mappings before repair because another application may still depend on them.

A ProgID is a friendly registration alias, not a replacement for the class identifier. Repair should come from the component installer or registration code that owns both sides of the mapping. After repair, resolve the ProgID to its CLSID and independently confirm that the CLSID server/type-library metadata belongs to the same component release.

Official Microsoft references for COMADMIN_E_BADREGISTRYPROGID


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