Exceptions with Accept-Type application/json will return JSON error.

This should check the quality of accept using something like `request.best
_matches`. Most browsers accept `*/*` and thus will always get a json response now which is not correct.