| Previous | Next |
| ERROR_NULL_LM_PASSWORD | ERROR_REVISION_MISMATCH |
ERROR_UNKNOWN_REVISION
The structure revision is not known to the security API.
ERROR_UNKNOWN_REVISION is Win32 error 1305 (0x519). It indicates that a revision field supplied for a security descriptor, SDDL string, ACL, or related versioned structure is not recognized. The receiver cannot safely interpret the remaining layout under an unknown format version.
Typical causes
- passing an arbitrary value instead of
SDDL_REVISION_1 - reading a truncated or corrupted security descriptor
- using the revision byte from the wrong structure offset
- serializing a native structure and replaying it with different packing
- forwarding a future or private format to an older component
Evidence to preserve
Record the API name, supplied revision, buffer length, self-relative or absolute form, SDDL text when applicable, structure origin, architecture, and producer version. Save the raw descriptor bytes with access controls because security descriptors can reveal account identifiers and audit policy.
Diagnostic sequence
Validate that the buffer is large enough for the documented header before reading its revision. For SDDL conversion, pass the exact revision supported by the function rather than deriving it from input text. Use IsValidSecurityDescriptor and ACL validation routines as appropriate, then inspect the producer that created the data.
Avoid casting untrusted bytes directly to a security structure. Parse lengths and offsets with overflow checks, and convert between absolute and self-relative descriptors using supported APIs. If the descriptor crosses an RPC or file boundary, version the enclosing format independently and reject incompatible producers clearly.
Recovery
Regenerate the descriptor using a supported revision and reconstruct it from authoritative ACL and ownership information. Do not simply overwrite the revision byte on an unknown layout; a matching number does not make the rest of the structure valid. If data corruption is suspected, restore the entire descriptor or source object metadata.
Difference from revision mismatch
ERROR_REVISION_MISMATCH usually means both revisions are individually known but cannot be combined, such as adding an ACE type to an ACL revision that does not support it. Error 1305 means the revision value itself is unrecognized.
Example
A service stores an SDDL string together with a custom schema version and accidentally passes that schema value as the StringSDRevision argument. Conversion returns 1305. Passing SDDL_REVISION_1 and validating the custom version separately fixes the import.
References
- Microsoft: System Error Codes (1300–1699)
- Microsoft: ConvertStringSecurityDescriptorToSecurityDescriptor
- Microsoft: Security descriptors
- Microsoft: IsValidSecurityDescriptor
Looking for a different code? Search another status or error code.
