SCL Error Codes — Deterministic Validation Reference
Definition
SCL is the deterministic, cryptographic identity protocol for AI run declarations.
This page is a reference of deterministic validation outputs returned when invalid input prevents canonicalized byte-level representations from producing canonical JSON and a SHA-256 identity.
Scope
This page lists error code categories associated with validation failure.
It does not redefine the specification and does not describe full protocol rules.
SCL enforces deterministic identity by rejecting invalid declarations before canonical JSON and SHA-256 identity are derived.
Validation Boundary
- Canonical JSON is produced only for valid input
- SHA-256 identity is derived exclusively from canonical JSON bytes
- Invalid input does not produce canonical JSON
- Invalid input does not produce a SHA-256 identity
Error Code Reference
E001 — Encoding and Forbidden Bytes
- Invalid UTF-8 sequences
- Carriage return bytes
- Tab bytes
- Forbidden byte-level representations rejected before canonicalized output
E101 — Invalid or Missing Header
- Header does not match required format
- Header not present at the beginning of the document
E102 — Invalid or Missing Handles Block
- Handles block not present
- Handles block incorrectly structured
E103 — Unclosed Handles Block
- Handles block not properly terminated
E104 — Missing or Invalid scl Block
sclblock not present- Trailing content after valid structure
E105 — Unclosed scl Block
sclblock not properly terminated
E201 — Invalid Handle Definition
- Handle identifier format invalid
- Handle spacing or structure invalid
E202 — Invalid Tag Syntax
- Tag formatting invalid
- Missing quotes
- Invalid separators
- Trailing commas
E900 — Unclassified Validation Failure
- Fallback error when no specific deterministic code applies
Deterministic Property
- Identical invalid bytes produce identical validation output
- Validation output occurs before canonical JSON generation
- Validation output occurs before content is hashed using SHA-256
Processing Context
For valid input, SCL defines a deterministic process:
bytes → AST → canonical JSON → SHA-256
Error codes apply when processing does not reach canonical JSON.
See also: SCL validation troubleshooting and testing SCL understanding.