diff --git a/airbyte-integrations/connectors/source-marketo/source_marketo/source.py b/airbyte-integrations/connectors/source-marketo/source_marketo/source.py index 59295de6b781..99a537233c4a 100644 --- a/airbyte-integrations/connectors/source-marketo/source_marketo/source.py +++ b/airbyte-integrations/connectors/source-marketo/source_marketo/source.py @@ -24,6 +24,7 @@ class MarketoStream(HttpStream, ABC): primary_key = "id" data_field = "result" + error_field = "errors" page_size = 300 def __init__(self, config: Mapping[str, Any], stream_name: str = None, param: Mapping[str, Any] = None, export_id: int = None): @@ -56,6 +57,13 @@ def request_params(self, next_page_token: Mapping[str, Any] = None, **kwargs) -> return params def parse_response(self, response: requests.Response, stream_state: Mapping[str, Any], **kwargs) -> Iterable[Mapping]: + response_json = response.json() + if response_json.get('success') == False: + errors = response_json.get(self.error_field, []) + self.logger.error(f"[MarketoStream] response indicates a FAILURE with {len(errors)} error(s)") + for error in errors: + self.logger.error(f"[MarketoStream] response error: {error}") + data = response.json().get(self.data_field, []) for record in data: