docs← Back to article

Markdown for LLMs

LDC-E5204 — Pinned publication bytes are unreadable

The source Markdown for this article. Copy it into your assistant or download it as a text file.

Download this articlePlain text ↗
# 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.