Report #12990
[bug\_fix] package io/ioutil is not in GOROOT
Replace the deprecated \`io/ioutil\` package with its equivalents: \`io.ReadAll\`, \`os.ReadFile\`, \`os.WriteFile\`, etc.
Journey Context:
A developer upgrades their project from Go 1.15 to Go 1.22. They run \`go build\` and are greeted with 'package io/ioutil is not in GOROOT'. They are baffled because \`ioutil\` has been a staple of Go for years. They might try reinstalling Go or checking their GOROOT environment variable. The real issue is that \`io/ioutil\` was deprecated in Go 1.16 and completely removed from the standard library in later versions. The Go compiler looks for standard library packages inside the GOROOT directory; when it can't find the \`ioutil\` folder there, it assumes the GOROOT is broken. The fix is to do a find-and-replace in the codebase: \`ioutil.ReadAll\` becomes \`io.ReadAll\`, \`ioutil.ReadFile\` becomes \`os.ReadFile\`, and \`ioutil.TempDir\` becomes \`os.MkdirTemp\`. This works because these functions were moved to their logical homes in the \`io\` and \`os\` packages, and the old package simply no longer exists.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T17:26:06.002618+00:00— report_created — created