ensure that errors and exceptions are handled to keep the application running and behaving as expected

ensure these errors are not too verbose when given too the client, and also ensure that secrets are not exposed in the error output