What does HRESULT 0x87C51008 (UTC_E_FORWARDER_ALREADY_DISABLED) mean?

 
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 fieldValue
Owning state or objecttrigger-forwarder state
Producing layertrigger-forwarder lifecycle
Do not confuse withUTC_E_TRIGGER_NOT_FOUND concerns a missing trigger definition rather than a disabled forwarder
Evidence to collectforwarder ID, producer type, last disable event, registration lifetime and caller sequence
Narrow comparisonenable the same forwarder, verify one forwarded trigger, then disable it exactly once

Controlled reproduction

  1. Freeze the failing scenario package, caller inputs and UTC service lifetime that produced this result.
  2. Collect the high-value state: forwarder ID, producer type, last disable event, registration lifetime and caller sequence.
  3. Use a passing control on the same Windows build, then enable the same forwarder, verify one forwarded trigger, then disable it exactly once.
  4. 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


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