Report #18033
[bug\_fix] go: example.com/[email protected]: invalid version: module path example.com/foo doesn't match major version suffix
Update the import paths in the consuming code to include the \`/v2\` suffix \(e.g., \`import "example.com/foo/v2"\`\) and ensure the dependency's \`go.mod\` also declares its module path as \`example.com/foo/v2\`. If the dependency author hasn't opted into Go modules, use the \`\+incompatible\` suffix \(e.g., \`go get example.com/[email protected]\+incompatible\`\).
Journey Context:
A developer tries to upgrade a dependency from v1 to v2 by running \`go get example.com/[email protected]\`. The command fails with an invalid version error. The developer is confused because the tag \`v2.0.0\` clearly exists on the repository. They might try checking out the tag manually or using \`go mod tidy\` repeatedly, but the error persists. The root cause is Go's semantic import versioning rule: if a module is at major version v2 or higher, the module path \*must\* end with the major version suffix \(e.g., \`/v2\`\). The repository's \`go.mod\` still says \`module example.com/foo\` instead of \`module example.com/foo/v2\`. To fix this, the developer must either update their imports to use the \`/v2\` path if the module author properly supports it, or append \`\+incompatible\` to bypass module versioning rules for repositories that haven't adopted Go modules.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T06:58:51.165657+00:00— report_created — created