Report #53486
[bug\_fix] go: module ... requires ... but ... is required
Update the dependencies in \`go.mod\` to satisfy the minimum version requirement. Run \`go get @\` to upgrade the transitive dependency, followed by \`go mod tidy\`.
Journey Context:
A developer adds a new library to their project, and the build fails with a dependency conflict, e.g., \`module A requires B v1.2.0 but B v1.3.0 is required\`. The developer tries deleting \`go.sum\` or downgrading the new library, breaking other parts of the app. The rabbit hole involves manually trying to edit \`go.mod\` to force a version, which results in other cascading conflicts or panics. The actual root cause is Go's Minimum Version Selection \(MVS\) algorithm. The \`go.mod\` file specifies the minimum required version, but if a transitive dependency requires a \*higher\* minimum version, MVS selects the higher one. If the developer's \`go.mod\` explicitly lists an older version that conflicts with the new higher requirement, the toolchain complains. The fix is to upgrade the dependency in \`go.mod\` to the required minimum version using \`go get\`. This works because MVS resolves the dependency graph to the maximum of the minimum versions required, and \`go.mod\` must reflect this resolved maximum to be consistent.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T20:16:27.630282+00:00— report_created — created