| Previous | Next |
| UTC_E_RPC_TIMEOUT | UTC_E_API_BUSY |
UTC_E_RPC_WAIT_FAILED
Locate the rejected contract: synchronous API wait object
When UTC_E_RPC_WAIT_FAILED (0x87C5102A) is returned, the producing layer is Universal Telemetry Client API coordination. The symbolic name points to a narrow UTC contract that can be tested directly. The rejected object or state is synchronous API wait object, and the specific condition is that the client could not successfully wait for the completion signal, independently of the operation result. Keep this first HRESULT even if a later service call reports another error.
UTC API requests may cross an RPC boundary and complete asynchronously even when exposed through a synchronous wrapper. Request submission, waiting, cancellation and result retrieval are separate stages, so one request ID should tie the evidence together.
Capture checklist
| UTC diagnostic field | Value |
|---|---|
| Owning state or object | synchronous API wait object |
| Producing layer | Universal Telemetry Client API coordination |
| Do not confuse with | UTC_E_RPC_TIMEOUT means the wait completed as a timeout rather than failing as a wait operation |
| Evidence to collect | request and wait handles, wait return code, thread apartment, cancellation, handle lifetime and service exit |
| Narrow comparison | use a fresh request on a dedicated thread and verify the wait handle remains valid until signaled |
Comparison with a passing case
- Associate this result with one request, one scenario version and one service process ID.
- Save request and wait handles, wait return code, thread apartment, cancellation, handle lifetime and service exit and the first lower-level HRESULT if one exists.
- Change no policy, provider set or destination except for this test: use a fresh request on a dedicated thread and verify the wait handle remains valid until signaled.
- Compare the produced artifacts and operational events, not only the top-level return value.
Nearby result: UTC_E_RPC_TIMEOUT — means the wait completed as a timeout rather than failing as a wait operation.
Request-lifetime note
Assign a correlation identifier before submission and retain it through wait, callback, cancellation and result retrieval. This prevents a late completion from being mistaken for the response to a newer request.
Resolution and regression test
Correct handle ownership and shutdown ordering, retaining both the wait error and any server result.
Technical references
- Microsoft Open Specifications: Windows error-code registry — reference for Universal Telemetry Client API coordination while interpreting this result.
- Microsoft: Universal Telemetry Client configuration diagnosis
- Microsoft: Remote Procedure Call documentation
- Microsoft: WaitForSingleObject
Looking for a different code? Search another status or error code.