# 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.