| Previous | Next |
| UTC_E_FORWARDER_ALREADY_ENABLED | UTC_E_EVENTLOG_ENTRY_MALFORMED |
UTC_E_FORWARDER_ALREADY_DISABLED
Where the UTC workflow stopped: trigger-forwarder state
UTC_E_FORWARDER_ALREADY_DISABLED has the unsigned value 0x87C51008. In UTC it comes from trigger-forwarder lifecycle, where trigger-forwarder state owns the decision. The key question is which UTC object rejected the request. The immediate contract failed because a disable operation targeted a forwarder that has no active forwarding path, so diagnosis should remain at that boundary until a controlled comparison crosses it.
Trigger forwarders connect a producer to scenario trigger processing and have their own registration and enable state. Reusing a handle after configuration reload or crossing producer types can fail before any scenario filter is evaluated.
Evidence to preserve
| UTC diagnostic field | Value |
|---|---|
| Owning state or object | trigger-forwarder state |
| Producing layer | trigger-forwarder lifecycle |
| Do not confuse with | UTC_E_TRIGGER_NOT_FOUND concerns a missing trigger definition rather than a disabled forwarder |
| Evidence to collect | forwarder ID, producer type, last disable event, registration lifetime and caller sequence |
| Narrow comparison | enable the same forwarder, verify one forwarded trigger, then disable it exactly once |
Controlled reproduction
- Freeze the failing scenario package, caller inputs and UTC service lifetime that produced this result.
- Collect the high-value state: forwarder ID, producer type, last disable event, registration lifetime and caller sequence.
- Use a passing control on the same Windows build, then enable the same forwarder, verify one forwarded trigger, then disable it exactly once.
- Repeat once after normal teardown to prove the result is not caused by a stale handle or leftover run state.
Nearby result: UTC_E_TRIGGER_NOT_FOUND — concerns a missing trigger definition rather than a disabled forwarder.
Platform-state note
Capture capability and identity state at the moment this result is returned. Session, container, service and destination state can change asynchronously, so a later successful query does not describe the state at failure.
Correction and verification
Align teardown with ownership and ignore a second disable only when no resources remain.
Technical references
- Microsoft Open Specifications: Windows error-code registry — reference for trigger-forwarder lifecycle while interpreting this result.
- Microsoft: Universal Telemetry Client configuration diagnosis — reference for trigger-forwarder lifecycle while interpreting it.
- Microsoft: Event Tracing for Windows
- Microsoft: UniversalTelemetryClient operational-log guidance
Looking for a different code? Search another status or error code.
