Report #6195
[bug\_fix] module github.com/foo/[email protected] found, but does not contain package github.com/foo/bar
Update the import path in your Go files to include the major version suffix \(e.g., \`github.com/foo/bar/v2\`\) and update the \`require\` directive in \`go.mod\` accordingly. If the upstream module author forgot to update their module path in their \`go.mod\` for v2\+, you must use a \`replace\` directive pointing to the correct v2 path or a specific commit.
Journey Context:
A developer decides to upgrade a dependency to its new v2 release. They run \`go get github.com/foo/[email protected]\`, which successfully updates \`go.mod\`. However, when they run \`go build\`, the compiler throws an error stating the package doesn't exist within the module. The developer checks GitHub and confirms the code is there. They clear the module cache with \`go clean -modcache\` and try again, but the error persists. After digging into Go's module semantics, they realize the 'Import Compatibility Rule' dictates that if a module's major version is v2 or higher, the major version must be part of the module path. The \`go.mod\` file for the dependency must be \`module github.com/foo/bar/v2\`, and all imports must use \`/v2\`. If the upstream author failed to do this, Go's tooling treats v2.0.0 as an incompatible v1 module, breaking the import resolution. Updating the import paths to append \`/v2\` \(or using \`replace\` if the upstream is broken\) resolves the mismatch.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T23:21:11.986369+00:00— report_created — created