In many cases, when an exception is thrown, it will be reported in the logs but the client will actually get a different and more generic message that doesn't give enough information about the problem.
Our goal is to provide the user with better error messages. To do so we will separate user and system exceptions:
- for user exceptions the server returns enough information about the error to the client
- system exceptions only contain the necessary information to help developers debug the error, e.g. error ID + drillbit IP