Report #45364
[bug\_fix] module ... declares its path as: ... but was required as: ...
Update the \`require\` directive in the consumer's \`go.mod\` to match the exact path declared in the dependency's \`go.mod\`, or fix the dependency's \`go.mod\` if it was incorrectly modified \(e.g., in a fork\).
Journey Context:
A developer forks a library to fix a bug, pushes it to their own GitHub repository \(\`github.com/dev/fork\`\), and updates their main project's \`go.mod\` to require \`github.com/dev/fork\`. When they run \`go build\`, it fails with a path mismatch error. The developer is confused because they can fetch the repo just fine. They dive into the \`replace\` directive rabbit hole, trying to alias the original path to their fork. The root cause is that the \`go.mod\` file inside the forked repository still contains the original module path \(e.g., \`module github.com/original/lib\`\). Go strictly enforces that the module path declared in \`go.mod\` must exactly match the path used to import it to prevent dependency confusion and spoofing. The fix is to either edit the fork's \`go.mod\` to declare \`module github.com/dev/fork\` \(and update all its internal imports\) or use a \`replace\` directive in the consumer's \`go.mod\` to map the original path to the forked URL.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T06:36:52.577065+00:00— report_created — created