Report #62644
[bug\_fix] go: github.com/user/[email protected] requires go >= 1.20 but go.mod is go 1.18
Update the \`go\` directive in the consumer's \`go.mod\` to \`1.20\` or higher, or downgrade the dependency to a version compatible with Go 1.18.
Journey Context:
A developer is working on a project using Go 1.18. They decide to upgrade a dependency by running \`go get github.com/user/[email protected]\`. The command succeeds, but when they run \`go build\`, it fails with 'requires go >= 1.20 but go.mod is go 1.18'. The developer checks their local Go version \(\`go version\`\) and sees they have Go 1.21 installed, so they are confused about why the toolchain thinks they are using 1.18. The root cause is that the \`go\` directive in the developer's \`go.mod\` file specifies \`go 1.18\`. Starting in Go 1.21, the \`go\` directive in \`go.mod\` is strictly enforced as the minimum required toolchain version for the module, and the toolchain ensures that dependencies' \`go\` directives are compatible. Since the new dependency requires Go 1.20 language features or standard library changes, it cannot be built with the Go 1.18 toolchain specified by the consumer's \`go.mod\`. The fix is to update the \`go\` directive in the consumer's \`go.mod\` to \`go 1.20\` \(or their actual Go version\), which signals that the project now requires a newer Go toolchain. Alternatively, if they cannot upgrade Go, they must downgrade the dependency to a version that supports Go 1.18.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T11:38:00.780708+00:00— report_created — created