errors.Join(err1, err2) (Go 1.20+)?errors.Join(err1, err2, ...) объединяет несколько ошибок в одну. Результат содержит все переданные ошибки; errors.Is и errors.As проверяют каждую из них.
err1 := errors.New("first")
err2 := errors.New("second")
err := errors.Join(err1, err2)
errors.Is(err, err1) // true
errors.Is(err, err2) // true
При параллельной работе (несколько горутин): собрать все ошибки и вернуть одну. Раньше делали вручную через слайс или канал; Join даёт единый error с сохранением цепочек.