| Previous | Next |
| UTC_E_TOGGLE_TRACE_STARTED | UTC_E_AOT_NOT_RUNNING |
UTC_E_ALTERNATIVE_TRACE_CANNOT_PREEMPT
Interpret the result in context: trace-priority arbitration
When UTC_E_ALTERNATIVE_TRACE_CANNOT_PREEMPT (0x87C51002) is returned, the producing layer is ETW trace-session control. Start by locating the exact scenario-engine boundary that emitted this value. The rejected object or state is trace-priority arbitration, and the specific condition is that a lower-priority alternative profile attempted to replace a trace that owns the exclusive slot. Keep this first HRESULT even if a later service call reports another error.
The Universal Telemetry Client controls ETW sessions on behalf of diagnostic scenarios. ETW sessions have controller-owned names, in-memory buffers, providers, logging modes and lifetimes; a status at this layer should be correlated with the actual session list rather than inferred from the presence of an ETL file.
Build a minimal evidence set
| UTC diagnostic field | Value |
|---|---|
| Owning state or object | trace-priority arbitration |
| Producing layer | ETW trace-session control |
| Do not confuse with | UTC_E_EXCLUSIVITY_NOT_AVAILABLE rejects a new exclusive trace even when it is not an alternative-toggle operation |
| Evidence to collect | active session/profile names, both priorities, exclusivity flags, controller PID and start times |
| Narrow comparison | stop the higher-priority trace in a controlled test and retry the lower-priority profile without changing its contents |
Run an A/B check
- Freeze the failing scenario package, caller inputs and UTC service lifetime that produced this result.
- Collect the high-value state: active session/profile names, both priorities, exclusivity flags, controller PID and start times.
- Use a passing control on the same Windows build, then stop the higher-priority trace in a controlled test and retry the lower-priority profile without changing its contents.
- Repeat once after normal teardown to prove the result is not caused by a stale handle or leftover run state.
Nearby result: UTC_E_EXCLUSIVITY_NOT_AVAILABLE — rejects a new exclusive trace even when it is not an alternative-toggle operation.
Trace-session note
Use an ETW controller view to list session name, GUID, mode, buffers and enabled providers while this result is active. The presence of an ETL file from an earlier run is not proof that the required in-memory session currently exists or is owned by UTC.
Safe remediation
Schedule the lower-priority capture after the owner exits or redesign the profile so it does not require preemption.
Technical references
- Microsoft Open Specifications: Windows error-code registry — reference for ETW trace-session control while interpreting this result.
- Microsoft: Universal Telemetry Client configuration diagnosis — reference for ETW trace-session control while interpreting this result.
- Microsoft: Event Tracing for Windows — reference for ETW trace-session control while interpreting it.
- Microsoft: WPR and ETW sessions
Looking for a different code? Search another status or error code.
