What does HRESULT 0x80110815 (COMADMIN_E_PROGIDINUSEBYCLSID) mean?

 
Previous Next
COMADMIN_E_CANTMAKEINPROCSERVICE COMADMIN_E_DEFAULT_PARTITION_NOT_IN_SET

COMADMIN_E_PROGIDINUSEBYCLSID

COMADMIN_E_PROGIDINUSEBYCLSID is the failure HRESULT 0x80110815 (signed decimal -2146367467, unsigned decimal 2148599829). Its severity bit is 1, facility is 17 (FACILITY_ITF), and the facility-specific code field is 0x0815.

ProgID uniqueness during COM+ component copy: exact meaning of COMADMIN_E_PROGIDINUSEBYCLSID

The ProgID supplied for a copy operation is already associated with another registered CLSID. COM+ cannot create a coherent copied class registration while the human-readable ProgID identifies a different class.

AllStat records the Windows SDK description as “The ProgID provided to the copy operation is invalid. The ProgID is in use by another registered CLSID.”

Typical cause branches

  • the requested new ProgID belongs to another installed component.
  • a stale ProgID registration remains after uninstall or version rollback.
  • automation generates a ProgID without checking both 32-bit and 64-bit registry views.
  • the source component’s versioned and version-independent ProgID plan collides with an existing CLSID.

Where COMADMIN_E_PROGIDINUSEBYCLSID occurs

The result occurs during CopyComponents or related class-registration work, after source and destination are resolved and before the copied component registration can be committed.

Evidence to collect before changing the catalog

  • requested ProgID, source CLSID, destination AppID, and existing CLSID mapping.
  • VersionIndependentProgID and CurVer relationships in both architecture views.
  • owner, file path, version, and installer identity of the conflicting class.
  • exact CopyComponents parameters and catalog/registry snapshots before change.

Diagnostic sequence for COMADMIN_E_PROGIDINUSEBYCLSID

  • resolve the ProgID to its current CLSID without modifying registration.
  • determine whether the existing class is valid, stale, or owned by another product.
  • choose a genuinely unique ProgID for the copied class or remove stale state through its installer.
  • perform the copy through COMAdmin and verify all ProgID/CLSID relationships.
  • test activation by CLSID and ProgID in the intended architecture.

Difference from nearby COMADMIN results

COMADMIN_E_BADREGISTRYPROGID reports invalid ProgID registration generally; this value specifically identifies a valid ProgID already used by a different CLSID during copy.

Retry and recovery

Retry only after the name collision is resolved. Do not overwrite a live ProgID mapping merely because the copied component has a similar purpose.

What this HRESULT does not establish

The HRESULT does not prove that the source component is corrupt. The conflict belongs to class identity and registry ownership.

Practical administration scenario

A copy operation tries to create Vendor.Widget.2 for a private variant, but that ProgID already resolves to a separately installed public CLSID.

Developer and operations guidance

Record source/destination AppIDs, source CLSID, requested ProgID, existing CLSID, registry view, owning file/installer, and copy options.

Official Microsoft references for COMADMIN_E_PROGIDINUSEBYCLSID


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