I think throwing an exception is fine. As discussed on ApiProblem, I don't like depending on that package to throw our own exceptions.