# LPK-E0401 — version or byte conflict in the closure ## What it means One world holds one version of each package: when two consumers need different versions of the same dependency, no single closure satisfies both, so the command refuses and names both consumers. Nothing is created or changed by the refusal. The same code guards the smallest case of all — a package depending on itself. Moving one consumer to a shared version resolves the conflict. Until then the project stays exactly as it was. ## Example ```pkgtest {"files": {"law.toml": "[package]\nname = \"demo.mini\"\nversion = \"0.1.0\"\nlanguage = \"0.2\"\nnamespace = \"urn:law:demo:mini\"\n"}, "cmd": ["add", "demo.mini", "--project", "."], "expect": "LPK-E0401"} ``` ## Fix ```pkgtest {"files": {}, "cmd": ["init", ".", "--name", "demo.diag"]} ``` ## Engine message The tool reports this in its own wording: ```text law: REFUSAL LPK-E0401: demo.mini: package cannot depend on itself ``` ## Related - [Package, context, snapshots](/recipes/n-package/) — what a project directory holds.