| Previous | Next |
| MEM_E_INVALID_SIZE | CO_E_RUNAS_VALUE_MUST_BE_AAA |
CO_E_MISSING_DISPLAYNAME
The important question is not merely what the text says, but which contract was being evaluated. At this boundary, an elevation-moniker activation lacks the localized display name required for the UAC consent user interface.
Meaning in the subsystem
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. 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.
Do not collapse this result into a nearby status. CO_E_ELEVATION_DISABLED concerns the Enabled flag; the returned status specifically identifies the absent display-name requirement. Compare lifecycle, identity, caller, and first API.
Minimum useful evidence
| Preserve before changing state | Diagnostic value |
|---|---|
| CLSID and LocalizedString value in the machine-wide class registration | Creates a stable before/after control. |
| MUI resource path, resource identifier, file presence, signature, and caller architecture | Tests whether the first boundary moves. |
| Elevation\Enabled and AppID identity settings read from the same registry view | Pins evidence to one attempt. |
| The exact elevation moniker string and RegLoadMUIString result | Separates contract failure from environment. |
The goal is reproducibility, not a full data dump. Prefer object IDs, configuration exports, event correlation, and redacted paths over credentials, cryptographic material, or user content.
Isolate the responsible condition
- Resolve the LocalizedString resource under the interactive user language; retain one negative control so that a broad workaround is not mistaken for a root-cause correction.
- Activate the class without elevation to separate general registration from UAC metadata; keep every other input fixed and record the first event that differs from the failing run.
- Test both supported architectures against the machine-wide CLSID registration; use a disposable or backed-up environment when the comparison changes boot, security, device, queue, or encryption state.
Do not use repeated retries as the primary test. In this case, a successful later attempt may reflect a new object, refreshed policy, restarted service, different token, or completed background transition, so record exactly what changed between attempts.
Avoid the common misdiagnosis
Interpret the controlled tests as evidence about the returning boundary:
| Observed result | Interpretation |
|---|---|
| The minimal or known-good comparison succeeds | The control works; inspect production-specific state. |
| The control fails at the same first operation | The control also fails; inspect host/provider evidence. |
| A new HRESULT marks another boundary | The failure moved to another boundary; diagnose the new status separately rather than treating it as confirmation that the entire operation is fixed. |
Regression proof
Apply the smallest change that addresses the first rejected condition: Install a valid MUI-compatible LocalizedString in HKLM for the elevated class and keep the referenced resource available after servicing. Preserve the pre-change configuration or trace.
Close the incident only when the UAC prompt displays the intended localized name on supported languages and activation still fails safely if the resource is removed. Repeat under the original identity and state. A different environment is comparison, not proof.
Technical references
Use these sources for the formal contract, then combine them with evidence from the returning application or service for COM elevation metadata:
- Microsoft Open Specifications: HRESULT values.
- Microsoft: COM clients and servers.
- Microsoft: CoGetClassObject.
- Microsoft: COM elevation moniker.
Looking for a different code? Search another status or error code.