What does HRESULT 0x87C5101D (UTC_E_CHILD_PROCESS_FAILED) mean?

 
Previous Next
UTC_E_SETUP_NOT_AUTHORIZED UTC_E_COMMAND_LINE_NOT_AUTHORIZED

UTC_E_CHILD_PROCESS_FAILED

Where the UTC workflow stopped: completed child process

UTC_E_CHILD_PROCESS_FAILED (0x87C5101D) is a Universal Telemetry Client result from the scenario action execution layer for this HRESULT. The decisive question is which UTC object rejected the request for this HRESULT. Here the relevant owner is completed child process: a UTC-launched process exited with a nonzero status without being forcibly terminated for this HRESULT. This is narrower than a generic failure of Connected User Experiences and Telemetry for this HRESULT.

Scenario actions run under service-controlled identity, timeout and cancellation rules for this HRESULT. The useful evidence is the exact action instance and its child process or script state, not a later generic service event for this HRESULT. stdout, stderr and native exit values should be retained separately from the UTC HRESULT for this HRESULT. Record the configuration package or scenario generation together with the Windows build; otherwise a repaired file can be tested against a stale in-memory graph and appear to fail for the same reason for this HRESULT.

Evidence to preserve

UTC diagnostic fieldValue
Producing layerscenario action execution
Owning state or objectcompleted child process
Decisive evidenceexecutable hash, exact arguments, working directory, environment, exit code, stdout/stderr and duration
Narrow comparisonexecute the same binary and arguments under the service account outside the scenario harness
Do not confuse withUTC_E_EXE_TERMINATED means UTC ended a still-running process

The AllStat message names the immediate condition as “A process launched by UTC failed with a non-zero exit code” for this HRESULT. In practice, the useful extension is to ask whether the request was rejected before any side effect, after partial setup, or during cleanup for this HRESULT. Verify the existence and ownership of the expected output—session, directory, process, result object or emitted event—rather than assuming the message describes the final system state for this HRESULT.

Controlled reproduction

  1. Freeze the failing scenario package, caller inputs and UTC service lifetime that produced this result.
  2. Collect the high-value state: executable hash, exact arguments, working directory, environment, exit code, stdout/stderr and duration for this HRESULT.
  3. Use a passing control on the same Windows build, then execute the same binary and arguments under the service account outside the scenario harness for this HRESULT.
  4. Repeat once after normal teardown to prove the result is not caused by a stale handle or leftover run state for this HRESULT.

The most informative neighbor is UTC_E_EXE_TERMINATED. The distinction is concrete: UTC_E_EXE_TERMINATED means UTC ended a still-running process for this HRESULT. Keeping both symbolic names in logs prevents a broad “DiagTrack error” bucket from hiding whether the failure occurred during parsing, authorization, resource acquisition, execution or teardown for this HRESULT.

Child-action accounting

Keep process creation, job assignment, timeout, cancellation, exit code and output capture as separate timestamps for this HRESULT. That sequence reveals whether the child failed itself, was terminated by UTC or never started for this HRESULT.

Correction and verification

Fix the child program or its inputs and retain its native exit code alongside this HRESULT for this HRESULT. Apply that change only to the owning boundary for this HRESULT. A successful repair must make the controlled case cross this boundary while retaining the intended policy, trace providers, destination and security context for this HRESULT.

Restarting Windows, clearing every ETL file or disabling diagnostic policy is not a justified first response to this result. Those actions destroy evidence and can change several independent UTC gates at once for this HRESULT.

  • the same request now produces its documented success or nonfatal status without a second hidden retry
  • the operational log shows one coherent request lifetime and no orphaned action, timer, process or trace session
  • teardown followed by a second run does not reuse stale state or recreate completed child process
  • the nearby condition remains distinguishable: UTC_E_EXE_TERMINATED means UTC ended a still-running process

Technical references


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