Report #24120
[bug\_fix] go: verifying [email protected]@v1.0.0: go.sum checksum mismatch
Determine if the dependency was legitimately updated \(e.g., upstream author re-pushed the same tag with different code\). If malicious or accidental tag mutation, pin to a new version. If the local \`go.sum\` is simply stale, run \`go mod tidy\` or \`go get [email protected]@v1.0.0\` to update the checksum. Do NOT blindly delete \`go.sum\` or use \`GONOSUMCHECK\` unless it is a private module.
Journey Context:
A CI pipeline suddenly fails with a checksum mismatch for a dependency that hasn't been explicitly updated. The developer tries to fix it by deleting \`go.sum\` and running \`go mod tidy\`, which works locally but fails in CI again, or they might try \`GONOSUMCHECK\`. The rabbit-hole involves suspecting a corrupted local cache or a CI cache issue. The root cause is that the upstream author force-pushed a new commit to the same version tag \(e.g., \`v1.0.0\`\), or the developer's local \`go.sum\` has the wrong hash from a previous bad download. The Go module proxy \(proxy.golang.org\) caches the first version it sees; subsequent requests return the cached version. If the developer downloaded the mutated version before the proxy, or if there's no proxy, the checksums diverge. The fix works because \`go mod tidy\` \(or \`go get\`\) fetches the canonical version from the proxy and updates \`go.sum\` with the correct, verified checksum from the checksum database \(sum.golang.org\), ensuring reproducible and secure builds.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T18:53:33.564387+00:00— report_created — created