From 51652bb79c3c025a4b0f9929ceb322f0b92314ed Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Wed, 4 Feb 2026 23:00:44 +0100 Subject: [PATCH 1/4] Include detail message upon HTTPError responses --- ayon_api/utils.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ayon_api/utils.py b/ayon_api/utils.py index 49917c7bb..b582d79df 100644 --- a/ayon_api/utils.py +++ b/ayon_api/utils.py @@ -178,6 +178,17 @@ def raise_for_status(self, message=None): except requests.exceptions.HTTPError as exc: if message is None: message = str(exc) + + # Get 'detail' from response.json() if possible because it'll be + # more descriptive than default http error message + try: + detail = exc.response.json()["detail"] + except (AttributeError, KeyError): + pass + else: + if detail: + message = f"{message}\n\tDetail: {detail}" + raise HTTPRequestError(message, exc.response) def __enter__(self, *args, **kwargs): From e4563b9173cdce133b6e9fb100aca7c7778bb869 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Wed, 4 Feb 2026 23:54:32 +0100 Subject: [PATCH 2/4] Fix detail message formatting --- ayon_api/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ayon_api/utils.py b/ayon_api/utils.py index b582d79df..13d303e1b 100644 --- a/ayon_api/utils.py +++ b/ayon_api/utils.py @@ -187,7 +187,7 @@ def raise_for_status(self, message=None): pass else: if detail: - message = f"{message}\n\tDetail: {detail}" + message = f"{message} ({detail})" raise HTTPRequestError(message, exc.response) From 0fd1349e04a3cc655a15aad9a9c98cbea3a4752f Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Wed, 4 Feb 2026 23:56:00 +0100 Subject: [PATCH 3/4] Pass RequestsJSONDecodeError --- ayon_api/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ayon_api/utils.py b/ayon_api/utils.py index 13d303e1b..c2303f504 100644 --- a/ayon_api/utils.py +++ b/ayon_api/utils.py @@ -183,7 +183,7 @@ def raise_for_status(self, message=None): # more descriptive than default http error message try: detail = exc.response.json()["detail"] - except (AttributeError, KeyError): + except (AttributeError, KeyError, RequestsJSONDecodeError): pass else: if detail: From 90ac8011aba7ac72ed5bce89d6d876cdfe5a4a3f Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 5 Feb 2026 09:43:06 +0100 Subject: [PATCH 4/4] move detail logic to try block --- ayon_api/utils.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ayon_api/utils.py b/ayon_api/utils.py index c2303f504..1e6837e90 100644 --- a/ayon_api/utils.py +++ b/ayon_api/utils.py @@ -183,11 +183,10 @@ def raise_for_status(self, message=None): # more descriptive than default http error message try: detail = exc.response.json()["detail"] - except (AttributeError, KeyError, RequestsJSONDecodeError): - pass - else: if detail: message = f"{message} ({detail})" + except (AttributeError, KeyError, RequestsJSONDecodeError): + pass raise HTTPRequestError(message, exc.response)