| Previous | Next |
| CO_E_FAILEDTOOPENPROCESSTOKEN | CO_E_ACNOTINITIALIZED |
CO_E_DECODEFAILED
COM could not decode serialized ACL data
CO_E_DECODEFAILED is HRESULT 2147549501 (0x8001013D) from winerror.h. The documented description is “Unable to decode the ACL in the stream provided by the user.” The relevant context is the COM IAccessControl, DCOM client identity, trustee translation, token inspection, security descriptor, ACL, or serialization workflow.
Where it is encountered
- IAccessControl initialization, access checks, owner/trustee processing, and serialized ACL persistence.
- Server-side DCOM impersonation, client blanket inspection, token and SID lookup.
- Security descriptor construction, DACL canonicalization, file-backed policy storage, or legacy NetAccess migration.
The immediate focus is IAccessControl deserialization where stream content is truncated, corrupt, inconsistent, or invalid for the advertised format.
What to verify
Verify that the original stream is preserved with hash, length, version, and producer identity before any repair attempt. Validate this condition using the owning API state, not an inferred UI symptom.
Correct handling and recovery
Reject the decoded policy, retain the last known-good ACL, restore from trusted configuration, and fix the writer or storage corruption.
Reconcile partial output and server-side effects before attempting the operation again.
Practical scenario
A partial disk write truncates an ACL stream. Startup keeps the previous valid policy, quarantines the corrupt file, and rebuilds it from authoritative configuration.
Difference from nearby HRESULTs
It is invalid content; CO_E_INCOMPATIBLESTREAMVERSION is a clean format-version mismatch.
Developer and administrator guidance
References
Looking for a different code? Search another status or error code.