Report #3297
[bug\_fix] ambiguous import: found package github.com/example/api in multiple modules: github.com/example/api github.com/example/monorepo/api
Eliminate the duplicate module paths. Options: \(1\) require only one module and remove/replace the other, \(2\) use an \`exclude\` directive to block the nested module version, \(3\) in a monorepo, convert nested modules to a single module or import via the parent module path, and \(4\) run \`go mod tidy\` after each change. You cannot compile while two module paths provide the same package.
Journey Context:
You add a new dependency and Go refuses to build, saying the same package is provided by two module paths. This happens in monorepos that contain nested \`go.mod\` files: both \`github.com/example/api\` and \`github.com/example/monorepo/api\` vend or proxy the same source tree. The module graph is valid but the import is ambiguous because the resolver sees two candidates. You inspect \`go list -m all\`, identify the overlapping paths, decide whether the nested module is intentional, and either remove the nested \`go.mod\`, add an \`exclude\` for the nested module version, or update imports to use the parent module path. After \`go mod tidy\` the ambiguity is resolved because only one module path can satisfy the import.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T16:28:32.905148+00:00— report_created — created