What does HRESULT 0x80110423 (COMADMIN_E_REGISTRARFAILED) mean?

 
Previous Next
COMADMIN_E_APPDIRNOTFOUND COMADMIN_E_COMPFILE_DOESNOTEXIST

COMADMIN_E_REGISTRARFAILED

COMADMIN_E_REGISTRARFAILED is the failure HRESULT 0x80110423 (signed decimal -2146368477, unsigned decimal 2148598819). Its severity bit is 1, facility is 17 (FACILITY_ITF), and the facility-specific code field is 0x0423.

Exact meaning

AllStat describes this HRESULT as “Errors occurred while in the component registrar.” COM+ reached the registrar phase of component installation, and that phase reported failure. The value is an aggregate boundary: the actionable cause is normally in the detailed COM+ administration error information or in a subordinate registration result.

Do not reinterpret this code as a generic catalog corruption signal. It says that registrar processing was entered and did not complete successfully; it does not identify which class, interface, type library, registry operation, or file caused the failure.

Why the detailed error collection matters

COM+ administration operations can affect multiple catalog objects and registration records. Microsoft documents the ErrorInfo collection specifically for retrieving the item or DLL that failed during an update or component installation. The collection must be obtained immediately after the failing operation, before another call changes the associated error context.

Preserve both the top-level COMADMIN_E_REGISTRARFAILED and every ErrorInfo item. Replacing the aggregate HRESULT with only the last subordinate code loses the fact that the failure occurred during component-registrar processing and may hide partial progress across several objects.

Evidence to capture immediately

  • The COMAdmin method, target application AppID, partition, component file, external type-library path, and proxy/stub path.
  • Every item from the ErrorInfo collection, including object key, display name, property, and detailed HRESULT where available.
  • The component and metadata hashes, file versions, architecture, signer, and deployment package identifier.
  • Registry and file-system access failures observed under the effective administration identity, with 32-bit versus 64-bit registry view noted explicitly.
  • COM+ and Application event-log entries at the installation timestamp, plus loader or registration diagnostics generated by the component's supported installer.
  • A before/after inventory of Components, InterfacesForComponent, MethodsForInterface, and relevant class/type-library registration so partial changes can be recognized.

Possible failure branches

  • The registrar accepts some component metadata and then rejects one class, interface, or property, producing a multi-object failure rather than a single missing-file result.
  • A required registry write is denied, redirected to the wrong architecture view, or blocked by policy while other registration steps have already succeeded.
  • The component package combines binaries, type libraries, or proxy/stub artifacts from different builds, so registrar validation cannot produce a coherent registration set.
  • A supported component installer or registration callback returns a specific failure that COM+ surfaces through the registrar aggregate boundary.
  • Remote administration reaches the target catalog but performs registrar work under an identity or machine context different from the one used during local testing.
  • Previous partial installation state conflicts with the new registration set. Removing only visible catalog objects may be insufficient if the product installer owns additional registration.

Diagnostic sequence

  • Stop issuing COMAdmin calls and retrieve/populate ErrorInfo for the collection involved in the failed installation.
  • Sort the detailed records by operation order and identify the earliest specific failure; later records may be consequences of the first rejected object.
  • Map each failing key back to the exact component, CLSID, IID, LIBID, or catalog object from the package being installed.
  • Validate that all artifacts came from the same signed build and match the target platform. Test file and registry access under the real administration identity.
  • Use the component vendor's installer or documented registration process to repair owned state. Avoid hand-creating catalog or registry entries based solely on the aggregate HRESULT.
  • Remove or roll back partial installation state through supported tooling, then install the verified package once and compare the resulting catalog inventory with the expected manifest.

Practical scenario

A package contains several COM classes. Registrar processing creates entries for the first classes, but a later class references interface metadata that is absent from the shipped type library. COM+ returns COMADMIN_E_REGISTRARFAILED; ErrorInfo identifies the failing component object. Re-running the same package merely repeats the partial failure. The repair is to rebuild and ship a coherent binary/type-library set, clean the incomplete installation through the supported installer, and install again.

Retry and rollback

Retry only after the first detailed registrar error has been corrected and partial state has been reconciled. Because multiple stores can be involved, do not assume that a failed installation left the machine unchanged. Verify catalog, registry, and packaged-file state before another attempt.

If the operation ran inside a transaction, retain transaction outcome alongside the COMAdmin records. Microsoft notes that COM+ catalog updates can participate in the calling transaction while changes to other stores are not guaranteed to be fully transactional, so recovery should inspect each store rather than relying on a single rollback assumption.

Distinguishing nearby COMADMIN results

  • COMADMIN_E_COMPFILE_NOREGISTRAR means the registrar referenced by the component file is unavailable; this result means registrar processing ran and reported errors.
  • COMADMIN_E_DLLREGISTERSERVER identifies a failure from DllRegisterServer during component installation.
  • COMADMIN_E_BADREGISTRYLIBID narrows the defect to an invalid registered type-library identifier.
  • COMADMIN_E_OBJECTERRORS is a broader multi-object catalog failure for which ErrorInfo may also contain details; it does not specifically identify the registrar phase.

Telemetry and deployment guidance

Emit one parent event for COMADMIN_E_REGISTRARFAILED and child records for each ErrorInfo item. Include stable object identifiers, artifact hashes, architecture, caller, machine and partition, package version, operation direction, and rollback result. Deployment systems should retain these records before cleanup, because subsequent catalog calls can replace the detailed error context.

Official Microsoft references


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