Report #11292
[bug\_fix] invalid version: module path ... lacks /v2 suffix
Append \`\+incompatible\` to the version in the \`go get\` command \(e.g., \`go get github.com/foo/[email protected]\+incompatible\`\), or update the import path to include \`/v2\` if the upstream library has properly adopted Go modules.
Journey Context:
A developer tries to upgrade a dependency to a new major version by running \`go get github.com/foo/[email protected]\`. The command fails, complaining about a missing \`/v2\` suffix. The developer checks GitHub and sees the \`v2.0.0\` tag exists. They try deleting the \`go.sum\` and clearing the cache, but nothing works. The rabbit hole involves discovering that the upstream repository doesn't have a \`go.mod\` file, or its \`go.mod\` doesn't end with \`/v2\`. Go's semantic import versioning rule strictly requires that modules with major version v2.0.0 and above must have a \`/v2\` \(or \`/v3\`, etc.\) suffix in their module path. If they don't, Go assumes it's an invalid v0/v1 module. The fix works because appending \`\+incompatible\` tells the Go toolchain to bypass semantic import versioning rules and treat it like a legacy GOPATH-style import, allowing the build to proceed despite the upstream's non-compliance.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T12:55:17.783787+00:00— report_created — created