What does HRESULT 0x80080017 (CO_E_ELEVATION_DISABLED) mean?

 
Previous Next
CO_E_RUNAS_VALUE_MUST_BE_AAA APPX_E_PACKAGING_INTERNAL

CO_E_ELEVATION_DISABLED

The short system message identifies the immediate outcome, but the useful interpretation is narrower: COM class opt-in for UAC elevation. In this case, the client requested elevation, but the class registration does not explicitly enable the elevation moniker contract.

Start with the failing layer

COM activation is a sequence rather than a single operation: registration lookup, SCM or surrogate selection, process startup, class-factory publication, marshaling, and finally the requested interface call when diagnosing COM class opt-in for UAC elevation. The useful evidence is the evidence from the first stage that fails; a later RPC or cleanup message can otherwise hide the original activation problem for an incident involving COM class opt-in for UAC elevation.

Do not collapse this result into a nearby status. A missing display name or incompatible RunAs produces separate codes after the class has otherwise participated in elevation. For COM class opt-in for UAC elevation, compare the lifecycle stage, object identity, caller context, and first returning API—not only the English wording or the final dialog shown to the user.

Preserve before retrying

Preserve before changing stateDiagnostic value
HKLM CLSID Elevation\Enabled value and registry viewShows whether the proposed correction changes the first failing boundary during verification of COM class opt-in for UAC elevation.
LocalizedString, optional IconReference, component signature, and AppID mappingLocates the exact attempt and prevents evidence from a later retry from being mixed into it when diagnosing COM class opt-in for UAC elevation.
The exact moniker level and CLSID requested by the clientSeparates a contract or configuration defect from a transient environmental failure in an incident involving COM class opt-in for UAC elevation.
Whether the class was installed per-user, which elevated activation does not useProvides a stable comparison point for a controlled reproduction before changing the state involved in COM class opt-in for UAC elevation.

The goal is reproducibility, not a full data dump when diagnosing COM class opt-in for UAC elevation. Prefer object IDs, configuration exports, event correlation, and redacted paths over credentials, cryptographic material, or user content for an incident involving COM class opt-in for UAC elevation.

Three useful comparisons

  1. Verify normal non-elevated activation before changing elevation metadata; use a disposable or backed-up environment when the comparison changes boot, security, device, queue, or encryption state.
  2. Enable elevation only in a test installation and inspect the UAC prompt identity; retain one negative control so that a broad workaround is not mistaken for a root-cause correction.
  3. Request the narrow privileged operation from a standard-user client; keep every other input fixed and record the first event that differs from the failing run.

For COM class opt-in for UAC elevation, one clean comparison is more informative than many uncontrolled retries. For the COM class opt-in for UAC elevation comparison, keep the original inputs and identity, change a single suspected condition, and stop as soon as the first differing event is visible.

Decision points

Interpret the controlled tests as evidence about the boundary for COM class opt-in for UAC elevation:

Observed resultInterpretation
The minimal or known-good comparison succeedsFor COM class opt-in for UAC elevation, the platform path is available; concentrate on the production object, arguments, identity, policy, or lifecycle state described above.
The control fails at the same first operationFor COM class opt-in for UAC elevation, failure of the control points below application-specific data; preserve service, provider, operating-system, or host evidence before changing the environment.
A different HRESULT appears after one controlled changeThe COM class opt-in for UAC elevation boundary moved; diagnose the new status separately rather than treating it as confirmation that the entire operation is fixed.

A defensible fix

Apply the smallest change that addresses the first rejected condition: Opt in only classes designed for a small privileged surface, install their metadata machine-wide, and secure every exposed method. For COM class opt-in for UAC elevation, preserve the pre-change export or trace and document the exact configuration, build, identity, object, or policy that changed.

Close the incident only when the approved operation prompts and succeeds, non-approved callers are rejected by method-level authorization, and per-user registration is not relied upon. For COM class opt-in for UAC elevation, repeat the original supported operation under the original identity and object state, then retain one deliberate boundary or negative test. A result from a different account, simplified input, replacement object, or unrelated machine is useful comparison data for COM class opt-in for UAC elevation, but it is not regression proof.

Technical references

These references define the HRESULT family and the subsystem contract used above for COM class opt-in for UAC elevation:


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