Fixed a huge issue with error handling

Now errors are properly sent back to the client and the calls return with an error status (when an error occurs)