| Previous | Next |
| RPC_E_INVALID_CALLDATA | RPC_E_WRONG_THREAD |
RPC_E_CANTCALLOUT_ININPUTSYNCCALL
Outgoing COM call is forbidden during an input-synchronous call
RPC_E_CANTCALLOUT_ININPUTSYNCCALL is HRESULT 2147549453 (0x8001010D) from winerror.h. The documented description is “An outgoing call cannot be made since the application is dispatching an input-synchronous call.” 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 reentrant call control while the current thread dispatches an input-synchronous message that must complete before outbound COM work.
What to verify
Verify that the incoming call category and callback stack prove that the thread is inside input-synchronous dispatch.
Difference from nearby HRESULTs
It is tied to input-synchronous dispatch; RO_E_BLOCKED_CROSS_ASTA_CALL blocks a broader deadlock-prone apartment chain.
Correct handling and recovery
Post or queue the outbound work until the current call returns. Do not block or make a synchronous cross-apartment call from the handler.
Practical scenario
A window procedure invoked by COM attempts to call another automation server. The handler posts a private message and performs the call after returning.
References
Looking for a different code? Search another status or error code.
