# LDC-E5204 — Pinned publication bytes are unreadable ## What it means A publication with a `local_path` claims its pinned bytes live at that path, and the compiler reads the file to check the declared document hash against the real bytes. The path must stay inside the package directory, and the file must be readable there. When the bytes cannot be read — the file is missing, the path escapes the package, or the declared hash does not match what was read — the pinning claim cannot be verified, and the compiler reports the publication instead of trusting it. ## Example ```law language "law.core" version "0.2"; package demo.diagnostics version "0.1.0"; namespace "urn:law:demo:diagnostics"; source S { kind law; } edition E of S { language ru-KZ; officiality official; materialization_status ABSTRACT_ONLY; } publication P of E { media_type "text/plain"; uri "urn:x"; content_hash "sha256:ab"; local_path "missing.txt"; } ``` ## Fix ```law language "law.core" version "0.2"; package demo.diagnostics version "0.1.0"; namespace "urn:law:demo:diagnostics"; source S { kind law; } edition E of S { language ru-KZ; officiality official; materialization_status ABSTRACT_ONLY; } ``` ## Engine message The engine reports this in its own wording: ```text example.law:11:3: error LDC-E5204: publication "P": pinned bytes "missing.txt" are unreadable: No such file or directory (os error 2) ``` ## Related - [Sources](/constructs/sources/) — how publications pin their bytes.