Report #16937
[bug\_fix] go: github.com/user/[email protected]: verifying go.sum: checksum mismatch
Run \`go clean -modcache\` to clear the corrupted local cache, then \`go mod tidy\`. If it's a proxy issue \(e.g., a force-pushed tag\), use \`GONOSUMCHECK\` or \`GOFLAGS=-insecure\` temporarily, but preferably re-tag the upstream release.
Journey Context:
A developer pulls the latest code and runs \`go build\`, but gets a checksum mismatch for a specific dependency version. They check \`go.sum\` and it matches the repository, but the downloaded module doesn't. They spend hours trying to figure out if their machine was compromised or if the dependency was hacked. The real cause is often that the upstream repository deleted and re-pushed a git tag with the same version number but different code \(a force-push\), or the local module cache got corrupted \(e.g., due to a failed download or disk issue\). The Go module proxy \(proxy.golang.org\) caches the first version it sees, so if the developer is hitting the proxy, it might be a local cache corruption. Running \`go clean -modcache\` forces a fresh download from the proxy, resolving local corruption. If the proxy itself has a different checksum than \`go.sum\`, it means the upstream force-pushed, and the developer must update \`go.sum\` to match the new reality \(or the upstream must release a new version\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T03:58:48.261041+00:00— report_created — created