Report #639
[bug\_fix] go: updates to go.sum needed, disabled by -mod=readonly
Run \`go mod tidy\` to recompute the module graph and rewrite go.sum with the correct cryptographic hashes for every required module and its go.mod, then commit the updated go.sum. Do not hand-edit go.sum. If the mismatch involves a private module, set \`GOPRIVATE\`/\`GONOSUMDB\` patterns so the public checksum database is skipped for internal code.
Journey Context:
CI starts failing on \`go test\` with "updates to go.sum needed, disabled by -mod=readonly". Locally everything builds because you ran \`go get\` interactively but forgot to add go.sum to the commit. You try deleting go.sum and running \`go mod download\`, which sometimes silences the error but sometimes reintroduces stale hashes after a teammate force-pushes a dependency. The real issue is that go.sum is an integrity log, not a hand-maintained lockfile; its entries must correspond to the exact bytes the go command downloads. \`go mod tidy\` scans every import in your module, resolves the full graph including test dependencies, and writes the correct hashes. It works because Go 1.16 made \`-mod=readonly\` the default for most commands, so any divergence between the imports, go.mod, and go.sum is now a hard error rather than a silent auto-fix.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-13T10:55:42.402259+00:00— report_created — created