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

rahulvats pushed a commit to branch backpt-5392
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit 96c590d6b0c5924ced525087cecc74c290cccfa1
Author: Rahul Vats <[email protected]>
AuthorDate: Fri Aug 1 10:00:33 2025 +0530

    Fix dag_versions property when created_dag_version is None with 
bundle_version set (#53952)
    
    Fix dag_versions property when created_dag_version is None with 
bundle_version set
    
    (cherry picked from commit 79e6fd398e765ea848714c6b55e8203b185b1139)
---
 airflow-core/src/airflow/models/dagrun.py     |  2 +-
 airflow-core/tests/unit/models/test_dagrun.py | 21 +++++++++++++++++++++
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/airflow-core/src/airflow/models/dagrun.py 
b/airflow-core/src/airflow/models/dagrun.py
index 3feb0f8794d..43512c50558 100644
--- a/airflow-core/src/airflow/models/dagrun.py
+++ b/airflow-core/src/airflow/models/dagrun.py
@@ -350,7 +350,7 @@ class DagRun(Base, LoggingMixin):
         """Return the DAG versions associated with the TIs of this DagRun."""
         # when the dag is in a versioned bundle, we keep the dag version fixed
         if self.bundle_version:
-            return [self.created_dag_version]
+            return [self.created_dag_version] if self.created_dag_version is 
not None else []
         dag_versions = [
             dv
             for dv in dict.fromkeys(list(self._tih_dag_versions) + 
list(self._ti_dag_versions))
diff --git a/airflow-core/tests/unit/models/test_dagrun.py 
b/airflow-core/tests/unit/models/test_dagrun.py
index 9d76ffabc1c..63940b25b49 100644
--- a/airflow-core/tests/unit/models/test_dagrun.py
+++ b/airflow-core/tests/unit/models/test_dagrun.py
@@ -1244,6 +1244,27 @@ class TestDagRun:
         # the latest task instance dag_version
         assert dag_run.version_number == dag_v.version_number
 
+    def test_dag_run_dag_versions_with_null_created_dag_version(self, 
dag_maker, session):
+        """Test that dag_versions returns empty list when created_dag_version 
is None and bundle_version is populated."""
+        with dag_maker(
+            "test_dag_run_null_created_dag_version",
+            schedule=datetime.timedelta(days=1),
+            start_date=DEFAULT_DATE,
+        ):
+            EmptyOperator(task_id="empty")
+        dag_run = dag_maker.create_dagrun()
+
+        dag_run.bundle_version = "some_bundle_version"
+        dag_run.created_dag_version_id = None
+        dag_run.created_dag_version = None
+        session.merge(dag_run)
+        session.flush()
+
+        # This should return empty list, not [None]
+        assert dag_run.dag_versions == []
+        assert isinstance(dag_run.dag_versions, list)
+        assert len(dag_run.dag_versions) == 0
+
 
 @pytest.mark.parametrize(
     ("run_type", "expected_tis"),

Reply via email to