What does HRESULT 0x80010117 (RPC_E_CALL_COMPLETE) mean?

 
Previous Next
RPC_S_WAITONTIMER RPC_E_UNSECURE_CALL

RPC_E_CALL_COMPLETE

COM call context was accessed after completion

RPC_E_CALL_COMPLETE is HRESULT 2147549463 (0x80010117) from winerror.h. The documented description is “Call context cannot be accessed after call completed.” 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 attempted use of call-context, cancellation, impersonation, or security data after the corresponding RPC call has returned.

What to verify

Verify that all context-dependent work is confined to the active call stack and asynchronous work copies only permitted immutable data.

Correct handling and recovery

Move context access into the server method, snapshot allowed identifiers before return, and never retain call-context interfaces beyond their documented lifetime.

Difference from nearby HRESULTs

It is a lifetime violation after return; RPC_E_NO_CONTEXT means the current location has no associated call context at all.

Practical scenario

A queued audit task calls a context API after the COM method returns. The method captures the client SID and correlation ID before scheduling the task.

References


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