| Previous | Next |
| RPC_E_TIMEOUT | RPC_E_FULLSIC_REQUIRED |
RPC_E_NO_SYNC
No synchronization objects are available to wait on
RPC_E_NO_SYNC is HRESULT 2147549472 (0x80010120) from winerror.h. The documented description is “There are no synchronize objects to wait on.” 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 COM call-control code asked to wait or coordinate when the call or operation exposes no valid synchronization handles. Keep this result attached to that operation; the same numeric severity outside the owning API does not supply enough context.
What to verify
Verify that the API contract actually promises a waitable object and the handle list has not been consumed, closed, or left uninitialized. That condition determines whether the same object can continue, a new object is required, or policy must change.
Correct handling and recovery
Use the documented callback or completion mechanism, initialize synchronization state before waiting, and avoid waiting on empty handle sets.
An unchanged retry loop can duplicate effects, deepen reentrancy, or hide an invalid lifetime transition.
Practical scenario
A cancellation controller calls a wait helper before registering any outstanding calls. It skips the wait and reports that no cancellable operations exist.
Difference from nearby HRESULTs
It is missing synchronization infrastructure; RPC_E_TIMEOUT means a valid wait existed but did not finish in time.
References
Looking for a different code? Search another status or error code.
