What does HRESULT 0x80000021 (RO_E_CANNOT_ACTIVATE_UNIVERSAL_APPLICATION_SERVER) mean?

 
Could be also:
ConstantTypeOS
STATUS_SETMARK_DETECTEDNTSTATUSWindows
Previous Next
RO_E_CANNOT_ACTIVATE_FULL_TRUST_SERVER MSG_CI_CREATE_SEVER_ITEM_FAILED

RO_E_CANNOT_ACTIVATE_UNIVERSAL_APPLICATION_SERVER

Full-trust app cannot activate an incompatible universal WinRT server

RO_E_CANNOT_ACTIVATE_UNIVERSAL_APPLICATION_SERVER is HRESULT 2147483681 (0x80000021) from winerror.h. The documented description is “A full trust packaged application process cannot activate a packaged WinRT server unless it is also declared to run full trust.” The relevant context is the Windows Runtime metadata, object lifetime, asynchronous operation, activation, and apartment model.

Where it is encountered

  • C++/WinRT, WRL, .NET projections, or native WinRT ABI calls.
  • Runtime-class activation, WinMD reflection, asynchronous objects, observable state, or view lifecycle.
  • Cross-thread and cross-apartment handoff between UI, ASTA, STA, MTA, broker, and background work.

The immediate focus is package activation where a full-trust process requests a packaged WinRT server that is not declared for full-trust activation.

What to verify

Verify that the process identity and server manifest declarations show that the activation direction is unsupported.

Correct handling and recovery

Use a server declared for the caller trust model, introduce an app-service boundary, or activate from the supported application context. Preserve package isolation.

Reconcile partial output and server-side effects before attempting the operation again.

Difference from nearby HRESULTs

It is the inverse trust-direction mismatch of RO_E_CANNOT_ACTIVATE_FULL_TRUST_SERVER.

Practical scenario

A desktop process with package identity tries to activate a universal-only background server. The package adds a compatible service contract instead of bypassing activation policy.

References


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