airflow icon indicating copy to clipboard operation
airflow copied to clipboard

Versioned dag run uses the latest version of serialized dag in the Scheduler instead of sticking to their version

Open vatsrahul1001 opened this issue 8 months ago • 2 comments

Apache Airflow version

3.0.0

If "Other Airflow 2 version" selected, which one?

No response

What happened?

Previously, when a DAG had multiple versions due to changes (e.g., a task removed), running DAG runs would sometimes incorrectly use the latest serialized DAG, even if they were started with an older version. This caused tasks that should still run to be incorrectly marked as removed.

The issue was caused by the scheduler not considering bundle_version when retrieving the DAG from the dagbag, defaulting to the latest available version.

What you think should happen instead?

No response

How to reproduce

Using the dag below in a git bundle, create a run, then comment out the first section, uncomment the second quickly while the first is still in the sleep task. Run the task and you will see the astronomer task marked removed.

from airflow import DAG
from airflow.providers.standard.operators.bash import BashOperator

with DAG(dag_id="demo"):
    # First run
    sleep = BashOperator(task_id="sleep", bash_command="sleep 300")
    hello = BashOperator(task_id="hello", bash_command="echo 'Hello'")
    astronomer = BashOperator(task_id="astronomer", bash_command="echo 'Astonomer'")

    sleep >> hello >> astronomer

    # Second run
    #sleep = BashOperator(task_id="sleep", bash_comma

Image

Operating System

Linux

Versions of Apache Airflow Providers

No response

Deployment

Official Apache Airflow Helm Chart

Deployment details

No response

Anything else?

No response

Are you willing to submit PR?

  • [ ] Yes I am willing to submit a PR!

Code of Conduct

vatsrahul1001 avatar Apr 09 '25 13:04 vatsrahul1001

Fixed by #49097

phanikumv avatar Apr 15 '25 08:04 phanikumv

While checking https://github.com/apache/airflow/issues/49047, I realized that it's the same issue with this and upon checking this, I found out that it's not resolved yet.

cc @vatsrahul1001 @atul-astronomer can you also confirm.

ephraimbuddy avatar Jun 17 '25 10:06 ephraimbuddy

I am able to replicate this on latest main, first dagrun should continue running on v1 but after pushing the new changes, its not able to find the removed tasks in v2 and failing. I am reading dags using git bundle and performed the same steps mentioned in the description. @ephraimbuddy

Image

Image

atul-astronomer avatar Jun 19 '25 08:06 atul-astronomer

Looks similar to #49047

phanikumv avatar Jun 23 '25 09:06 phanikumv