| Previous | Next |
| SDIAG_E_DISABLED | SDIAG_E_CANNOTRUN |
SDIAG_E_TRUST
SDIAG_E_TRUST — 0x803C0107
A productive investigation starts at troubleshooting-pack trust validation. The status means that WTP rejected the pack because its signature, catalog, publisher trust, or package integrity did not satisfy the platform’s trust checks.
Operational meaning
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. A PowerShell execution-policy change cannot repair a troubleshooting package whose signed catalog no longer matches. Compare lifecycle, identity, caller, and first API.
Build the incident record
| Preserve before changing state | Diagnostic value |
|---|---|
| Pack/catalog/signature hashes, signer chain, timestamp, and trust-store result | Pins evidence to one attempt. |
| Files modified after signing and package extraction/repackaging history | Separates contract failure from environment. |
| Publisher metadata shown by WTP and enterprise trust policy | Creates a stable before/after control. |
| WinVerifyTrust/SignTool result and revocation/time context | Tests whether the first boundary moves. |
Collect the smallest evidence set that identifies the attempt and object. Redact secrets and message contents; preserve hashes, IDs, policy values, versions, and state transitions instead.
Tests that separate the causes
- Verify the untouched published package on a clean trusted machine; keep every other input fixed and record the first event that differs from the failing run.
- Rebuild and sign after the final file set is frozen; use a disposable or backed-up environment when the comparison changes boot, security, device, queue, or encryption state.
- Compare an intentionally modified file to ensure integrity validation triggers; retain one negative control so that a broad workaround is not mistaken for a root-cause correction.
If the failure disappears after a broad restart, treat that as a clue about lifetime or state, not as proof of repair. Reproduce the original operation with targeted instrumentation before closing the incident.
Interpretation boundaries
Read the comparison results in this order:
| 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 | this boundary moved; diagnose the new status separately rather than treating it as confirmation that the entire operation is fixed. |
Repair without losing evidence
Apply the smallest change that addresses the first rejected condition: Restore the original package or rebuild/catalog/sign it with an approved certificate and deployment process. Preserve the pre-change configuration or trace.
Close the incident only when the final package verifies offline/online as required, displays the expected publisher, and tampering remains detectable. Repeat under the original identity and state. A different environment is comparison, not proof.
Technical references
Use these sources for the formal contract, then combine them with evidence from the returning application or service for this condition:
- 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.