Report #64669
[bug\_fix] go: [email protected]: verifying module: checksum mismatch
For public modules, the tag was mutated; the author must release a new version. For private modules, set \`GOPRIVATE\` or \`GONOSUMDB\` to bypass the public checksum database.
Journey Context:
A developer tries to \`go get\` a dependency at a specific version, but the build fails with a checksum mismatch. They might try deleting go.sum and re-running, but it fails again. They might even try \`go clean -modcache\` thinking their local cache is corrupted. The debugging rabbit hole involves checking if the proxy is serving a cached version, or if the dependency author force-pushed a new commit to the same version tag. The root cause is that the Go checksum database \(sum.golang.org\) recorded the original hash of the version, and the newly downloaded version has a different hash. This is a critical security feature to prevent supply chain attacks. If it's a public module, the tag was mutated, and it cannot be safely bypassed. If it's a private module, the proxy cannot fetch it, and setting GOPRIVATE tells the toolchain to download directly and skip the public sumdb.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T15:01:54.148120+00:00— report_created — created