diff --git a/airflow/models/dagbag.py b/airflow/models/dagbag.py index 3e40678a912ba..e553b21a4075c 100644 --- a/airflow/models/dagbag.py +++ b/airflow/models/dagbag.py @@ -594,6 +594,7 @@ def _serialize_dag_capturing_errors(dag, session): except OperationalError: raise except Exception: + self.log.exception("Failed to write serialized DAG: %s", dag.full_filepath) return [(dag.fileloc, traceback.format_exc(limit=-self.dagbag_import_error_traceback_depth))] # Retry 'DAG.bulk_write_to_db' & 'SerializedDagModel.bulk_sync_to_db' in case diff --git a/tests/models/test_dagbag.py b/tests/models/test_dagbag.py index b4edc0c7a4f0e..a065318152e28 100644 --- a/tests/models/test_dagbag.py +++ b/tests/models/test_dagbag.py @@ -703,7 +703,9 @@ def test_serialized_dag_errors_are_import_errors(self, mock_serialize): ) assert dagbag.import_errors == {} - dagbag.sync_to_db(session=session) + with self.assertLogs(level="ERROR") as cm: + dagbag.sync_to_db(session=session) + self.assertIn("SerializationError", "\n".join(cm.output)) assert path in dagbag.import_errors err = dagbag.import_errors[path]