Report #49241
[bug\_fix] go: github.com/example/[email protected]: verifying go.sum: checksum mismatch
If the dependency legitimately changed its tag \(force push\), the version is permanently poisoned on the Go proxy and you must release a new version tag. If it's local cache corruption or a missing entry, run \`go clean -modcache\` and \`go mod tidy\` to re-download and recalculate.
Journey Context:
A developer pulls the latest main branch, runs \`go build\`, and gets a checksum mismatch. They delete the offending line from \`go.sum\`, run \`go mod tidy\`, and it works locally. They push the updated \`go.sum\`, but CI fails with the same error. The rabbit hole begins: they try clearing the CI cache, but it still fails. The issue is that the Go module proxy \(proxy.golang.org\) and checksum database \(sum.golang.org\) cache the hash of a version forever. If a dependency author force-pushed a git tag, the proxy has the old hash, but \`go.sum\` has the new hash \(or vice versa\). The Go tooling strictly enforces the checksum database to ensure supply chain security. The developer realizes the dependency tag was mutated, which is forbidden. They must contact the dependency author to release a new, unmutated version, or if they own the dependency, cut a new tag.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T13:08:13.739768+00:00— report_created — created