`fmt.Errorf` is generally preferred over `errors.New`. That's often the case even when there are no substitutions in the format string. So `fmt.Sprintf("oops")` is preferred to `errors.New("oops")` most of the time. The reasoning is that fmt is usually already being imported for other reasons and error reporting is generally not a performance bottleneck.