Markdown for LLMs
LPK-E0404 — version change via add
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# LPK-E0404 — version change via add
## What it means
Adding pins a new dependency; moving an existing pin belongs to the update command, which also moves the pin subtree and replays the saved calculations. Asking add to re-pin an already pinned name is therefore refused, with the exact update invocation spelled out. Nothing is created or changed by the refusal.
Running the named update command is the whole fix — or keeping the pinned version and dropping the request.
## Example
```pkgtest
{"files": {"law.toml": "[package]\nname = \"demo.mini\"\nversion = \"0.1.0\"\nlanguage = \"0.2\"\nnamespace = \"urn:law:demo:mini\"\n\n[dependencies]\nfoo = \"1.0.0\"\n"}, "cmd": ["add", "foo@2.0.0", "--project", "."], "expect": "LPK-E0404"}
```
## Fix
```pkgtest
{"files": {}, "cmd": ["init", ".", "--name", "demo.diag"]}
```
## Engine message
The tool reports this in its own wording:
```text
law: REFUSAL LPK-E0404: foo: pinned 1.0.0, requested 2.0.0
```
## Related
- [Package, context, snapshots](/recipes/n-package/) — what a project directory holds.