more explicit oob error message and catch not-a-string earlier
docstring update