Report #17666
[bug\_fix] package io/ioutil is not in GOROOT
Replace imports of 'io/ioutil' with the equivalent functions in the 'io' and 'os' packages \(e.g., ioutil.ReadFile -> os.ReadFile, ioutil.TempDir -> os.MkdirTemp, ioutil.Discard -> io.Discard\).
Journey Context:
A developer clones an older Go project or copies a snippet from a tutorial and attempts to build it with a modern Go toolchain. The build abruptly fails claiming the standard library package doesn't exist, which is highly confusing since 'io/ioutil' has been around since Go 1.0. The developer might check their GOROOT, reinstall Go, or suspect a broken GOPATH. The root cause is that 'io/ioutil' was officially deprecated in Go 1.16 and completely removed from the standard library in Go 1.22. The Go team determined that the package was just a wrapper around 'io' and 'os' and added unnecessary abstraction. The fix works by using the direct standard library implementations that replaced the deprecated wrappers, ensuring compatibility with Go 1.22\+.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T05:56:53.449687+00:00— report_created — created