What does HRESULT 0x803C0106 (SDIAG_E_DISABLED) mean?

 
Previous Next
SDIAG_E_NOVERIFIER SDIAG_E_TRUST

SDIAG_E_DISABLED

Treat this HRESULT as a marker, not as a request for a generic restart or reinstall. It is returned when Windows policy prevents scripted diagnostics from running, regardless of whether the troubleshooting pack itself is valid.

Where the failure sits

A troubleshooting pack has distinct initialization, detection, resolution, and verification phases. Keep the ordinary result report together with the debug report, and identify whether the pack script, PowerShell host, managed host, resource loader, trust check, or verifier produced the first failure.

Do not collapse this result into a nearby status. Administrative elevation does not override an explicit enterprise policy that disables the feature. Compare lifecycle, identity, caller, and first API.

Facts to collect first

RecordHow it narrows the cause
Effective Group Policy/MDM setting, scope, source GPO, and refresh timeCreates a stable before/after control.
WTP/MSDT invocation, pack identity, and system edition/buildTests whether the first boundary moves.
Diagnostic Policy Service and related host statePins evidence to one attempt.
Policy result report such as gpresult/MDM diagnosticsSeparates contract failure from environment.

The goal is reproducibility, not a full data dump. Prefer object IDs, configuration exports, event correlation, and redacted paths over credentials, cryptographic material, or user content.

Change one variable at a time

  • Run a built-in non-scripted diagnostic if available; retain one negative control so that a broad workaround is not mistaken for a root-cause correction.
  • Test the pack on a policy-equivalent lab machine after changing only the controlling setting; keep every other input fixed and record the first event that differs from the failing run.
  • Force policy refresh and confirm the effective value before retrying; use a disposable or backed-up environment when the comparison changes boot, security, device, queue, or encryption state.

One clean comparison is more informative than many uncontrolled retries. For the controlled comparison, keep the original inputs and identity, change a single suspected condition, and stop as soon as the first differing event is visible.

What the result does not prove

Interpret the controlled tests as evidence about the returning boundary:

Observed resultInterpretation
The minimal or known-good comparison succeeds The control works; inspect production-specific state.
The control fails at the same first operation The control also fails; inspect host/provider evidence.
A new HRESULT marks another boundaryThe failure moved to another boundary; diagnose the new status separately rather than treating it as confirmation that the entire operation is fixed.

Verification after correction

The corrective action should be narrow: Change policy through the authorized management channel or use an approved replacement diagnostic workflow. Preserve the pre-change configuration or trace.

Close the incident only when effective policy reflects the intended scope, the pack runs only where permitted, and disallowed devices remain blocked. Repeat under the original identity and state. A different environment is comparison, not proof.

Technical references

These references define the HRESULT family and subsystem contract used above:


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