Go 1.27 refuses to build with removed GODEBUG settings

Go 1.27 stops the build with `removed GODEBUG "asynctimerchan" set to old value "1"` when `go.mod` or a `//go:debug` line sets a removed setting to its old value.

We tested ten `go.mod` lines on Go 1.26.9 and Go 1.27.2. Eight failed on 1.27, while `panicnil=1` and the new default `asynctimerchan=0` still build.

The nastiest case is a `GODEBUG` environment variable in a deployment manifest: the build passes, then the binary dies with `fatal error` at startup.

Modules with a `go` line below 1.23 get a silent change instead: a fired timer's channel length went from 1 to 0.

Read the full post

Read the full post