Report #72544
[bug\_fix] invalid version: module contains a go.mod file, so major version must be compatible
Update the module path in the dependency's go.mod to include the major version suffix \(e.g., \`module github.com/user/repo/v2\`\), and update all import statements in the consuming code to use the \`/v2\` path.
Journey Context:
A developer tries to update a dependency from v1.2.0 to v2.0.0. They change the version in go.mod or run \`go get github.com/user/[email protected]\`. The build fails with this error. The rabbit hole: they think the author just tagged the release wrong, or they try using \`\+incompatible\` \(e.g., \`v2.0.0\+incompatible\`\), which might work but breaks semantic import versioning. The root cause: Go modules enforce Semantic Import Versioning. If a module has a go.mod file and its version is v2.0.0 or higher, its import path MUST end with \`/v2\` to prevent breaking changes from being silently pulled into v1 consumers. The fix works because appending the major version to the module path creates a distinct namespace for the v2 API, satisfying the Go toolchain's versioning rules and ensuring type safety across major versions.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T04:21:13.786731+00:00— report_created — created