This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 5dde3cdf1d5 Improve SnowflakeSqlApiOperator error message on query 
status check failure (#66642)
5dde3cdf1d5 is described below

commit 5dde3cdf1d5405bdf463ba5766f4be5fdc878485
Author: Justin Pakzad <[email protected]>
AuthorDate: Fri Jun 5 17:58:17 2026 -0400

    Improve SnowflakeSqlApiOperator error message on query status check failure 
(#66642)
---
 .../airflow/providers/snowflake/operators/snowflake.py  |  2 +-
 .../tests/unit/snowflake/operators/test_snowflake.py    | 17 +++++++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git 
a/providers/snowflake/src/airflow/providers/snowflake/operators/snowflake.py 
b/providers/snowflake/src/airflow/providers/snowflake/operators/snowflake.py
index 8f36c84ac12..eec2e39ecc2 100644
--- a/providers/snowflake/src/airflow/providers/snowflake/operators/snowflake.py
+++ b/providers/snowflake/src/airflow/providers/snowflake/operators/snowflake.py
@@ -487,7 +487,7 @@ class SnowflakeSqlApiOperator(SQLExecuteQueryOperator):
             try:
                 statement_status = 
self._hook.get_sql_api_query_status(query_id)
             except Exception as e:
-                raise ValueError({"status": "error", "message": str(e)})
+                raise RuntimeError(f"Failed to get status for query 
{query_id}: {e}") from e
             if statement_status.get("status") == "error":
                 queries_in_progress.remove(query_id)
                 statement_error_status[query_id] = statement_status
diff --git 
a/providers/snowflake/tests/unit/snowflake/operators/test_snowflake.py 
b/providers/snowflake/tests/unit/snowflake/operators/test_snowflake.py
index cca046f0415..1b459299dfd 100644
--- a/providers/snowflake/tests/unit/snowflake/operators/test_snowflake.py
+++ b/providers/snowflake/tests/unit/snowflake/operators/test_snowflake.py
@@ -342,6 +342,23 @@ class TestSnowflakeSqlApiOperator:
         with pytest.raises(RuntimeError):
             operator.execute(context=None)
 
+    def test_poll_on_queries_raises_runtime_error_on_status_check_failure(
+        self, mock_execute_query, mock_get_sql_api_query_status
+    ):
+        """Tests poll_on_queries raises RuntimeError when status check 
fails."""
+        operator = SnowflakeSqlApiOperator(
+            task_id=TASK_ID,
+            snowflake_conn_id="snowflake_default",
+            sql=SQL_MULTIPLE_STMTS,
+            statement_count=4,
+            do_xcom_push=False,
+        )
+        operator.query_ids = ["uuid1", "uuid2"]
+        mock_get_sql_api_query_status.side_effect = RuntimeError("connection 
timeout")
+
+        with pytest.raises(RuntimeError, match="Failed to get status for query 
uuid1"):
+            operator.poll_on_queries()
+
     @pytest.mark.parametrize(
         ("mock_sql", "statement_count"),
         [pytest.param(SQL_MULTIPLE_STMTS, 4, id="multi"), 
pytest.param(SINGLE_STMT, 1, id="single")],

Reply via email to