Report #29555
[bug\_fix] module declares its path as: X but was required as: Y
Add a \`replace\` directive in the root project's \`go.mod\` to map the original module path to the fork's URL or local path, keeping the fork's \`go.mod\` module path unchanged.
Journey Context:
A developer forks a third-party repository to apply a custom bug fix, pushing it to their own GitHub account. They update the \`require\` directive in their main project's \`go.mod\` to point to the new fork URL. Upon running \`go build\`, they are hit with a path mismatch error. They descend into a rabbit-hole of manually editing the fork's \`go.mod\` to match the new URL, only to find this breaks all internal imports within the forked code. The context is a corporate environment relying on a private module proxy. The fix works because Go's module system dictates that a module's identity is strictly defined by its \`go.mod\` path, not its fetch URL. The \`replace\` directive tells the build tool to fetch the code from the fork while treating it as the original module, preserving internal import compatibility.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T03:59:56.351587+00:00— report_created — created