What does HRESULT 0x80010005 (RPC_E_CANTCALLOUT_INEXTERNALCALL) mean?

 
Previous Next
RPC_E_CANTCALLOUT_INASYNCCALL RPC_E_CONNECTION_TERMINATED

RPC_E_CANTCALLOUT_INEXTERNALCALL

RPC_E_CANTCALLOUT_INEXTERNALCALL means that code attempted an outgoing COM call while COM was invoking a message-filter callback. Such nested calls can cause unsafe reentrancy and are not allowed in that context.

How to correct the callback

  • Do not invoke COM objects from IMessageFilter methods.
  • Return the message-filter decision first, then schedule any follow-up work after the callback completes.
  • Separate retry or UI decisions from the operation that needs to call the server.

A message filter is a control point for COM call handling, not a safe general-purpose place to call into another COM server.

Microsoft: COM documentation


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