Quick answer: Unity Package Manager picking different versions on different machines? packages-lock.json out of sync with manifest.json - regenerate by deleting the lock and re-resolving.

Two team members on the same branch get different package versions. Builds differ subtly.

Commit the lockfile

packages-lock.json belongs in source control. Manifest.json declares constraints; lockfile pins versions.

Regenerate after manifest edits

Edit manifest; delete lockfile; reopen; lock regenerates. Commit the result.

Or use exact versions

Manifest entries with exact version (not ranges) avoid the diff class.

“Package locks are the source of truth. Mismatch is the bug source.”

Add a CI check: lockfile must match manifest's resolved versions. Drift is caught at PR time.

Related reading