| 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_BADREGISTRYPROGIDshould 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_BADREGISTRYPROGIDinvestigation 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_BADREGISTRYPROGIDboundary, load and inspect the matching type library without substituting another version. - The next
COMADMIN_E_BADREGISTRYPROGIDdiagnostic 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
- Microsoft: COMADMIN error codes
- Microsoft: the COM+ catalog
- Microsoft: ICOMAdminCatalog::InstallComponent
- Microsoft: installing new components
- Microsoft: Components collection
Looking for a different code? Search another status or error code.