Report #16378
[bug\_fix] go: verifying ...@...: checksum mismatch
If the dependency is public, the maintainer must release a new version with a new tag \(do not force-push over existing tags\). If it's a private module, set \`GOPRIVATE\`, \`GONOSUMDB\`, and \`GONOSUMCHECK\` environment variables to bypass the public checksum database. Locally, if the cache is corrupted, run \`go clean -modcache\`.
Journey Context:
A CI pipeline suddenly fails with a checksum mismatch for a specific dependency version. The developer runs the build locally and it fails too. They try deleting the \`go.sum\` file and regenerating it, which works locally but fails CI. The debugging rabbit hole leads them to realize a transitive dependency's maintainer force-pushed a new commit to the same version tag. Since the Go checksum database \(sum.golang.org\) recorded the old hash, the new hash mismatches. The fix works because Go strictly verifies module integrity against the checksum database; bypassing it for private modules via \`GONOSUMDB\` prevents the public database check, while public modules require a new, unmodified tag to generate a new, valid checksum.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T02:28:24.132098+00:00— report_created — created