From 7dda6d70afbb52e51e876bac3e0a38f24f81227c Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Fri, 20 Mar 2026 12:48:07 +0100 Subject: [PATCH] Allow to retry on server response with status code 502 or 503 --- ayon_api/server_api.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/ayon_api/server_api.py b/ayon_api/server_api.py index a325bef47..6b007c26b 100644 --- a/ayon_api/server_api.py +++ b/ayon_api/server_api.py @@ -1228,6 +1228,20 @@ def _do_rest_request(self, function, url, **kwargs): for retry_idx in reversed(range(max_retries)): try: response = function(url, **kwargs) + + # Usually these mean, try later. + # 502: returned by the proxy: nginx + # 503: returned by the server: if no capacity + if response.status_code in {502, 503}: + new_response = RestApiResponse(response) + self.log.warning( + "Server returned %s status code." + " Retrying with longer delay...", + response.status_code + ) + if retry_idx != 0: + time.sleep(2) + continue break except ConnectionRefusedError: @@ -1269,7 +1283,8 @@ def _do_rest_request(self, function, url, **kwargs): } ) - time.sleep(0.1) + if retry_idx != 0: + time.sleep(0.1) if new_response is not None: return new_response