diff --git a/CHANGELOG.md b/CHANGELOG.md index 06e36c801..7e5303185 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,7 @@ at anytime. ### Fixed * loggly error reporting not following `share_usage_data` - * + * improper error handling when data is not valid JSON ### Deprecated * automatic claim renew, this is no longer needed diff --git a/lbrynet/daemon/auth/server.py b/lbrynet/daemon/auth/server.py index 1190a58de..db76a618c 100644 --- a/lbrynet/daemon/auth/server.py +++ b/lbrynet/daemon/auth/server.py @@ -298,12 +298,13 @@ class AuthJSONRPCServer(AuthorizedBase): # maybe its a twisted Failure with another type of error error = JSONRPCError(failure.getErrorMessage() or failure.type.__name__, traceback=failure.getTraceback()) + if not failure.check(ComponentsNotStarted, ComponentStartConditionNotMet): + log.warning("error processing api request: %s\ntraceback: %s", error.message, + "\n".join(error.traceback)) else: # last resort, just cast it as a string error = JSONRPCError(str(failure)) - if not failure.check(ComponentsNotStarted, ComponentStartConditionNotMet): - log.warning("error processing api request: %s\ntraceback: %s", error.message, - "\n".join(error.traceback)) + response_content = jsonrpc_dumps_pretty(error, id=id_) self._set_headers(request, response_content) request.setResponseCode(200)