Resource's __call__ has an overzealous TypeError catch
On line 140 of resource.py, there's an except TypeError. If this is triggered (say from a TypeError in the code), rather than a 500 error, this results in a 400 error with various debug-style information about the problem. This is pretty bad for a production environment.
The use case this appears to have been designed for (automatically informing people that there are arguments missing) seems to be poorly covered here, as the message given to the user isn't really informative about what is missing and, again, can be triggered by other TypeErrors.