What does HRESULT 0x8001010A (RPC_E_SERVERCALL_RETRYLATER) mean?

 
Previous Next
RPC_E_RETRY RPC_E_SERVERCALL_REJECTED

RPC_E_SERVERCALL_RETRYLATER

COM server is busy and asks the caller to retry later

RPC_E_SERVERCALL_RETRYLATER is HRESULT 2147549450 (0x8001010A) from winerror.h. The documented description is “The message filter indicated that the application is busy.” 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 an STA server whose IMessageFilter reports temporary busy state rather than permanent rejection.

What to verify

Verify that retry delay and cancellation policy come from RetryRejectedCall or application policy and the method is safe to repeat. That condition determines whether the same object can continue, a new object is required, or policy must change.

Correct handling and recovery

Apply bounded backoff, pump the appropriate STA messages, and honor user cancellation. Preserve call arguments and avoid spawning parallel duplicate calls.

Practical scenario

An Office automation call reaches a modal STA. The client message filter retries after the advised delay and stops after the user cancels.

Difference from nearby HRESULTs

It is temporary; RPC_E_SERVERCALL_REJECTED says the callee rejected the call rather than requesting delay.

Developer and administrator guidance

Document the component that returned the result so future occurrences can be correlated across client, proxy, server, package, and security logs.

References


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