Refactor exceptions, and always return error response by raising exceptoin
Depreciate returning status_code >= 400 and test it