| 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.
