Report #48647
[bug\_fix] go: verifying go.sum: checksum mismatch
If using a private/corporate proxy, set GOPRIVATE or GONOSUMCHECK to bypass the public checksum database. If the upstream tag was mutated, clear the local cache with \`go clean -modcache\` and pin to a new, unmutated version.
Journey Context:
A developer runs \`go build\` and encounters a 'checksum mismatch' error for a third-party dependency. They assume their local cache is corrupted, so they delete the go.sum file and try again, but the error persists, now failing during the download phase against sum.golang.org. They dig into the error and notice the expected hash from the Go checksum database doesn't match the hash of the zip file they are downloading. There are two common root causes. First, their corporate network has a proxy that intercepts the request and re-zips the module \(changing the compression and thus the hash\). Second, the upstream maintainer force-pushed a commit to an existing version tag, changing the module's contents without bumping the version. The Go toolchain verifies all modules against sum.golang.org to ensure supply chain security. If the corporate proxy is the cause, setting \`GOPRIVATE=github.com/corp/\*\` or \`GONOSUMCHECK=\*\` tells the go tool to skip the public checksum verification for those modules. If the upstream tag was mutated, the developer must clear their cache and update to a new, immutable version tag.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T12:08:13.161524+00:00— report_created — created