From 14b5b260e50e0a594157de7299ddcb2bb8fc7ecb Mon Sep 17 00:00:00 2001 From: Alfredo Garcia Date: Mon, 17 Mar 2025 15:11:27 -0500 Subject: [PATCH] (Do Not Merge) Source-Google-Ads: GAQL TypeError on Check --- .../source_google_ads/source.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/airbyte-integrations/connectors/source-google-ads/source_google_ads/source.py b/airbyte-integrations/connectors/source-google-ads/source_google_ads/source.py index 4fa488df17e33..e679018be0435 100644 --- a/airbyte-integrations/connectors/source-google-ads/source_google_ads/source.py +++ b/airbyte-integrations/connectors/source-google-ads/source_google_ads/source.py @@ -181,10 +181,22 @@ def check_connection(self, logger: logging.Logger, config: Mapping[str, Any]) -> logger.info(f"Found {len(customers)} customers: {[customer.id for customer in customers]}") # Check custom query request validity by sending metric request with non-existent time window - for query in config.get("custom_queries_array", []): - for customer in customers: + custom_queries = config.get("custom_queries_array", []) + logger.info(f"custom_queries_array type: {type(custom_queries)}, length: {len(custom_queries) if isinstance(custom_queries, list) else 'N/A'}") + + for i, query in enumerate(custom_queries): + logger.info(f"Processing query item {i}, type: {type(query)}") + try: table_name = query["table_name"] query = query["query"] + logger.info(f"table_name: {table_name}, type: {type(table_name)}") + logger.info(f"query type: {type(query)}") + except TypeError as e: + logger.error(f"TypeError accessing query item {i}: {e}") + logger.error(f"query item {i} value: {query}") + raise # Re-raise to maintain original error behavior + + for customer in customers: if customer.is_manager_account and self.is_metrics_in_custom_query(query): logger.warning( f"Metrics are not available for manager account {customer.id}. "