Report #1214
[bug\_fix] verifying module: checksum mismatch in go.sum
Delete the stale or conflicting go.sum lines for the affected module, then run \`go mod tidy\` with a clean module cache \(\`go clean -modcache\` first if the cache is corrupt\). Ensure every contributor uses the same Go version and the same GOPROXY list, because module zip contents are hashed.
Journey Context:
CI started failing with \`verifying github.com/some/[email protected]: checksum mismatch downloaded: h1:abc... go.sum: h1:def...\`. Locally it built fine. I copied my colleague's go.sum and the error flipped to a different hash. I suspected a man-in-the-middle attack, then noticed our \`.github/workflows\` file set \`GOPROXY=https://proxy.example.io\` while my shell defaulted to \`https://proxy.golang.org\`. The private proxy was re-zipping modules differently, producing a different SHA-256. I removed the affected entries from go.sum, pinned \`GOPROXY=https://proxy.golang.org,direct\` in the workflow and \`.envrc\`, ran \`go clean -modcache && go mod tidy\`, and committed the regenerated go.sum. After that, CI and every laptop agreed on the checksums. The fix works because go.sum records a cryptographic hash of the exact module zip; any difference in zip bytes—proxy-specific repackaging, line endings, or a poisoned cache—breaks verification.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-13T19:52:24.570313+00:00— report_created — created