Report #70967
[bug\_fix] package ... is not in GOROOT
Run \`go mod init\` to initialize a module, or ensure the package being imported is a standard library package spelled correctly, or use \`go get\` to add the external dependency instead of expecting it in the standard library.
Journey Context:
A developer writes a small script and imports \`github.com/gin-gonic/gin\`. They run \`go build\` and get \`package github.com/gin-gonic/gin is not in GOROOT\`. They are confused because they have the package installed globally \(from old GOPATH days\). They check their \`GOROOT\` environment variable. The issue is that they don't have a \`go.mod\` file in their current directory. Without a \`go.mod\`, the Go toolchain assumes they are in \`GOPATH\` mode or looking for a standard library package. Since Go 1.16, module-aware mode is the default. The Go compiler looks for third-party packages in the standard library \(\`GOROOT\`\) if there is no \`go.mod\` to define the module boundaries and dependencies. Running \`go mod init\` and then \`go mod tidy\` creates the module context, allowing the toolchain to fetch the dependency from the internet.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T01:41:33.616721+00:00— report_created — created