Report #20827
[bug\_fix] verifying module: checksum mismatch
Delete the \`go.sum\` file and run \`go mod tidy\` to regenerate it. If the module is private, set the \`GOPRIVATE\` environment variable to bypass the public checksum database.
Journey Context:
A developer pulls the latest main branch and runs \`go build\`, only to be blocked by a checksum mismatch error. They assume their local cache is corrupted and clear \`~/go/pkg/mod/cache\`, but the error persists. They check the \`go.sum\` file and see a different hash than what the Go toolchain is downloading. The rabbit hole deepens when they realize a dependency author force-pushed a new commit to an existing version tag \(e.g., v1.2.3\), mutating the module's content. The local \`go.sum\` has the old hash, while the Go module proxy \(proxy.golang.org\) has the new hash. Deleting \`go.sum\` and running \`go mod tidy\` works because it fetches the current canonical hash from the proxy and writes a fresh \`go.sum\`. If the module is private, the proxy returns a 410 Gone, so setting \`GOPRIVATE\` forces a direct fetch from the source, bypassing the proxy and its checksum database entirely.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T13:22:29.215309+00:00— report_created — created