Treat all error codes as positive

This means that -500 errors will now behave like 500 errors
correctly so the -500 "No workers running" will properly be
caught and the library will retry requests by default.
This commit is contained in:
Lonami Exo
2019-04-23 11:28:09 +02:00
parent 665c844c9d
commit 56595e4a9c
2 changed files with 9 additions and 3 deletions

View File

@@ -34,7 +34,13 @@ def rpc_message_to_error(rpc_error, request):
capture = int(m.group(1)) if m.groups() else None
return cls(request, capture=capture)
cls = base_errors.get(rpc_error.error_code)
# Some errors are negative:
# * -500 for "No workers running",
# * -503 for "Timeout"
#
# We treat them as if they were positive, so -500 will be treated
# as a `ServerError`, etc.
cls = base_errors.get(abs(rpc_error.error_code))
if cls:
return cls(request, rpc_error.error_message)