| Previous | Next |
| RPC_E_UNSECURE_CALL | RPC_E_NO_GOOD_SECURITY_PACKAGES |
RPC_E_TOO_LATE
COM process security was initialized too late
RPC_E_TOO_LATE is HRESULT 2147549465 (0x80010119) from winerror.h. The documented description is “Security must be initialized before any interfaces are marshalled or unmarshalled; It cannot be changed once initialized.” The relevant context is the COM/RPC call control, message filtering, apartment routing, marshaling, security negotiation, or remote object lifetime.
Where it is encountered
- Cross-apartment or cross-process COM method invocation and activation.
- STA message filtering, reentrancy, call cancellation, timeout, or retry handling.
- DCOM security initialization, proxy/stub marshaling, OBJREF processing, and server object lifetime.
The immediate focus is a call to CoInitializeSecurity after COM has already initialized security implicitly or marshaled an interface.
What to verify
Verify that the first marshaling, activation, or implicit security event is earlier than the attempted explicit initialization. That condition determines whether the same object can continue, a new object is required, or policy must change.
Correct handling and recovery
Move CoInitializeSecurity to process startup before interface marshaling. Remove competing framework initialization or configure security through supported registration.
Reconcile partial output and server-side effects before attempting the operation again.
Difference from nearby HRESULTs
It is initialization ordering; RPC_E_NO_GOOD_SECURITY_PACKAGES means timely initialization found no acceptable package.
Practical scenario
A service loads a COM plug-in before calling CoInitializeSecurity. Startup is reordered so process security is configured before plug-in activation.
References
Looking for a different code? Search another status or error code.