diff --git a/superset/sql_lab.py b/superset/sql_lab.py
index ea91133270899..96afc7f51ed90 100644
--- a/superset/sql_lab.py
+++ b/superset/sql_lab.py
@@ -313,7 +313,6 @@ def execute_sql_statement(  # pylint: disable=too-many-arguments,too-many-statem
         if query.status == QueryStatus.STOPPED:
             raise SqlLabQueryStoppedException() from ex
 
-        logger.error("Query %d: %s", query.id, type(ex), exc_info=True)
         logger.debug("Query %d: %s", query.id, ex)
         raise SqlLabException(db_engine_spec.extract_error_message(ex)) from ex
 
diff --git a/superset/sqllab/command.py b/superset/sqllab/command.py
index 0aeab754ca54c..613edf8d69859 100644
--- a/superset/sqllab/command.py
+++ b/superset/sqllab/command.py
@@ -132,6 +132,8 @@ def run(  # pylint: disable=too-many-statements,useless-suppression
                 ) from ex
             raise ex
         except Exception as ex:
+            query_id = query.id if query else None
+            logger.exception("Query %d: %s", query_id, type(ex))
             raise SqlLabException(self._execution_context, exception=ex) from ex
 
     def _try_get_existing_query(self) -> Optional[Query]: