well, from my experience reading Go code, this is by far the most common way of doing this kind of stuff.
I use option 1. only if theres no return value of the function except the error
if err := doSomething(); err != nil {
// handle error
}
and TBH, never seed option 2. used