Skip to content

Commit 5ef44e2

Browse files
committed
update BaseBackoffException
1 parent 30d51b1 commit 5ef44e2

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

airbyte_cdk/sources/streams/http/exceptions.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,20 @@
55

66
from typing import Optional, Union
77

8+
from airbyte_cdk.models import FailureType
89
import requests
910

1011

1112
class BaseBackoffException(requests.exceptions.HTTPError):
13+
1214
def __init__(
1315
self,
1416
request: requests.PreparedRequest,
1517
response: Optional[Union[requests.Response, Exception]],
1618
error_message: str = "",
19+
failure_type: Optional[FailureType] = None,
1720
):
21+
self.failure_type = failure_type
1822
if isinstance(response, requests.Response):
1923
error_message = (
2024
error_message
@@ -43,6 +47,7 @@ def __init__(
4347
request: requests.PreparedRequest,
4448
response: Optional[Union[requests.Response, Exception]],
4549
error_message: str = "",
50+
failure_type: Optional[FailureType] = None,
4651
):
4752
"""
4853
:param backoff: how long to backoff in seconds

airbyte_cdk/sources/streams/http/http_client.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ def _send_with_retry(
307307
raise MessageRepresentationAirbyteTracedErrors(
308308
internal_message=f"Exhausted available request attempts. Exception: {e}",
309309
message=f"Exhausted available request attempts. Please see logs for more details. Exception: {e}",
310-
failure_type=FailureType.transient_error,
310+
failure_type=e.failure_type or FailureType.system_error,
311311
exception=e,
312312
stream_descriptor=StreamDescriptor(name=self._name),
313313
)
@@ -504,19 +504,22 @@ def _handle_error_resolution(
504504
request=request,
505505
response=(response if response is not None else exc),
506506
error_message=error_message,
507+
failure_type=error_resolution.failure_type,
507508
)
508509

509510
elif retry_endlessly:
510511
raise RateLimitBackoffException(
511512
request=request,
512513
response=(response if response is not None else exc),
513514
error_message=error_message,
515+
failure_type=error_resolution.failure_type,
514516
)
515517

516518
raise DefaultBackoffException(
517519
request=request,
518520
response=(response if response is not None else exc),
519521
error_message=error_message,
522+
failure_type=error_resolution.failure_type,
520523
)
521524

522525
elif response:

0 commit comments

Comments
 (0)