I know the author points out that the errgroup example usage is safe because each goroutine writes to their own index but I think in general you should always guard data structures that aren't thread safe. Relying on the layout of a slice could lead to a data race in the future.
That's a reasonable point. Maybe I should update the post to guard it with a mutex to discourage newcomers from doing something subtle. Thanks for the feedback!