Report #4970
[bug\_fix] module path "github.com/foo/bar" has a "v2" suffix but no major version suffix in the path
If you are the author, update \`go.mod\` to \`module github.com/foo/bar/v2\` and retag. If you are the consumer, use \`\+incompatible\` \(e.g., \`go get github.com/foo/[email protected]\+incompatible\`\) or find an alternative dependency.
Journey Context:
A developer tries to update a dependency to a new major release by running \`go get github.com/foo/[email protected]\`. The command fails with an invalid version error. They might try appending \`/v2\` to the \`go get\` command, but it fails because the repository path doesn't actually have a \`/v2\` directory. The root cause is that the dependency author tagged a v2.0.0 release but forgot to update the \`module\` directive in their \`go.mod\` file to include the \`/v2\` suffix. Go's module system strictly enforces that v2\+ modules must have a \`/v2\` path suffix. Because the author didn't follow this rule, Go rejects the version as invalid. The fix for the consumer is to append \`\+incompatible\` to the version \(e.g., \`@v2.0.0\+incompatible\`\), which tells Go to treat the module as if it were in GOPATH mode, bypassing the strict path check, though this sacrifices module path versioning semantics.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T20:22:47.483908+00:00— report_created — created