Report #30914
[bug\_fix] go: verifying example.com/[email protected]: checksum mismatch
Bump the module version to v1.2.4 \(or another new version\). The Go module proxy and checksum database are immutable; force-pushing a modified tag invalidates its recorded checksum and the proxy will serve the old code.
Journey Context:
A developer finds a bug in their dependency, patches it, and force-pushes the v1.2.3 tag to GitHub. They run go get example.com/[email protected] on their project, but the bug persists or they get a checksum mismatch. They might try deleting their local go.sum or running go clean -modcache, but the checksum still fails or the old code is fetched. The root cause is the Go module proxy \(proxy.golang.org\) is designed to be immutable to guarantee reproducibility; it cached the original v1.2.3 and will not re-fetch it. Furthermore, the checksum database \(sum.golang.org\) recorded the original hash, so any attempt to fetch the modified v1.2.3 will result in a checksum mismatch. The established fix is to NEVER force-push tags. Instead, the developer must bump the version to v1.2.4 and release that.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T06:16:20.081145+00:00— report_created — created