Site icon EfmSoft

What does HRESULT 0x80010120 (RPC_E_NO_SYNC) mean?

 
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.

Exit mobile version