I think that's something we should definitely improve; our IO descriptors should really tell the user what kind of input is expected.
Unfortunately, because those errors originate from that code, there's not much you can do, save from writing your own descriptors.
That said, we would absolutely welcome your contribution if you wanted to make our default descriptor errors more sensible.