Skip to content

Commit 1060161

Browse files
authored
[airbyte-cdk] - Update JSON Error Message Parser to return additional error message fields or default to dict (#44010)
1 parent af98a81 commit 1060161

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

airbyte-cdk/python/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@
55
from typing import Optional
66

77
import requests
8+
from airbyte_cdk.sources.streams.http.error_handlers import ErrorMessageParser
89
from airbyte_cdk.sources.utils.types import JsonType
910

10-
from .error_message_parser import ErrorMessageParser
11-
1211

1312
class JsonErrorMessageParser(ErrorMessageParser):
1413
def _try_get_error(self, value: Optional[JsonType]) -> Optional[str]:
@@ -26,6 +25,11 @@ def _try_get_error(self, value: Optional[JsonType]) -> Optional[str]:
2625
or value.get("failures")
2726
or value.get("failure")
2827
or value.get("detail")
28+
or value.get("err")
29+
or value.get("error_message")
30+
or value.get("msg")
31+
or value.get("reason")
32+
or value.get("status_message")
2933
)
3034
return self._try_get_error(new_value)
3135
return None

airbyte-cdk/python/unit_tests/sources/streams/http/error_handlers/test_json_error_message_parser.py

+10
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,16 @@
1313
(b'{"message": "json error message"}', "json error message"),
1414
(b'[{"message": "list error message"}]', "list error message"),
1515
(b'[{"message": "list error message 1"}, {"message": "list error message 2"}]', "list error message 1, list error message 2"),
16+
(b'{"error": "messages error message"}', "messages error message"),
17+
(b'[{"errors": "list error message 1"}, {"errors": "list error message 2"}]', "list error message 1, list error message 2"),
18+
(b'{"failures": "failures error message"}', "failures error message"),
19+
(b'{"failure": "failure error message"}', "failure error message"),
20+
(b'{"detail": "detail error message"}', "detail error message"),
21+
(b'{"err": "err error message"}', "err error message"),
22+
(b'{"error_message": "error_message error message"}', "error_message error message"),
23+
(b'{"msg": "msg error message"}', "msg error message"),
24+
(b'{"reason": "reason error message"}', "reason error message"),
25+
(b'{"status_message": "status_message error message"}', "status_message error message"),
1626
]
1727
1828
)

0 commit comments

Comments
 (0)