Go error wrapping without the head-scratching
One letter in a format string decides whether the check you wrote yesterday still works today. Here's the whole of Go's error chain, built up from that letter, with every output taken from a real run.

One letter in a format string decides whether the check you wrote yesterday still works today. Here's the whole of Go's error chain, built up from that letter, with every output taken from a real run.

A commit landed a month before I noticed it. By the time somebody told me, two of my own tools had already written workarounds for it without mentioning it.

Leaving a healthy dependency: cockroachdb/errors predates Go 1.20, so its Join hides the aggregate and everything below it goes missing.

A standard-library security fix forced a Go version bump, and then the release failed because the build image shipped an older toolchain.

Why a write-once boolean still needs a mutex: the Go memory model needs a happens-before edge before another goroutine is guaranteed to see it.
