Make error returns more informative.
Right now, it doesn't differentiate, and it might be breaking some
standard I don't know about, but it could be useful down the line.