| Previous | Next |
| SDIAG_E_POWERSHELL | SDIAG_E_NOVERIFIER |
SDIAG_E_MANAGEDHOST
Treat this HRESULT as a marker, not as a request for a generic restart or reinstall. It is returned when the managed host that coordinates scripted diagnostics failed outside the pack’s direct root-cause logic.
What the status narrows down
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. Script exceptions and managed-host failure are separate layers; preserve the host crash/initialization evidence. Compare lifecycle, identity, caller, and first API.
Evidence worth preserving
| Capture | Why it matters |
|---|---|
| Managed-host event/error, process lifetime, CLR/runtime state, and WTP phase | Pins evidence to one attempt. |
| Pack identity/signature and whether other packs fail in the same host | Separates contract failure from environment. |
| Crash dump,.NET runtime events, and loaded extensions | Creates a stable before/after control. |
| Resource pressure, policy restrictions, and service dependencies | Tests whether the first boundary moves. |
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.
A controlled diagnostic sequence
- Run a built-in pack to test the shared managed host; keep every other input fixed and record the first event that differs from the failing run.
- Launch the original pack after a clean host restart while preserving logs; use a disposable or backed-up environment when the comparison changes boot, security, device, queue, or encryption state.
- Reproduce in a clean user profile or machine image; retain one negative control so that a broad workaround is not mistaken for a root-cause correction.
Do not use repeated retries as the primary test. In this case, a successful later attempt may reflect a new object, refreshed policy, restarted service, different token, or completed background transition, so record exactly what changed between attempts.
How to read the outcome
Read the comparison results in this order for Scripted Diagnostic Managed Host:
| Observed result | Interpretation |
|---|---|
| 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 boundary | The failure moved to another boundary; diagnose the new status separately rather than treating it as confirmation that the entire operation is fixed. |
Correction and proof
A defensible correction is specific to the evidence: Repair the shared diagnostic host/runtime or isolate the extension that destabilizes it before changing pack logic. Preserve the pre-change configuration or trace.
Close the incident only when multiple packs execute sequentially and concurrently without host recycle, crash, or lost result reports. Repeat under the original identity and state. A different environment is comparison, not proof.
Technical references
The following documentation is most relevant when checking the code against the actual Windows contract for Scripted Diagnostic Managed Host:
- Microsoft Open Specifications: HRESULT values.
- Microsoft: Windows Troubleshooting Platform.
- Microsoft: About WTP.
- Microsoft: debugging troubleshooting packs.
Looking for a different code? Search another status or error code.
