diff --git a/airbyte-cdk/python/airbyte_cdk/sources/streams/concurrent/adapters.py b/airbyte-cdk/python/airbyte_cdk/sources/streams/concurrent/adapters.py index 96b7a9ffd2d2..9fe6ecbe5009 100644 --- a/airbyte-cdk/python/airbyte_cdk/sources/streams/concurrent/adapters.py +++ b/airbyte-cdk/python/airbyte_cdk/sources/streams/concurrent/adapters.py @@ -375,19 +375,20 @@ def __init__(self, stream: Stream, source: Source): self._source = source def check_availability(self, logger: logging.Logger) -> StreamAvailability: - try: - if hasattr(self._stream, "check_availability"): - available, message = self._stream.check_availability(logger, self._source) + stream_check_avail = getattr(self._stream, "check_availability", None) + if stream_check_avail is not None: + try: + available, message = stream_check_avail(logger, self._source) if available: return StreamAvailable() else: return StreamUnavailable(str(message)) - else: - # Given no availability strategy, we will assume the stream is available - return StreamAvailable() - except Exception as e: - display_message = self._stream.get_error_display_message(e) - if display_message: - raise ExceptionWithDisplayMessage(display_message) - else: - raise e + except Exception as e: + display_message = self._stream.get_error_display_message(e) + if display_message: + raise ExceptionWithDisplayMessage(display_message) + else: + raise e + else: + # Given no availability strategy, we will assume the stream is available + return StreamAvailable()