Skip to content

[v3-3-test] Load the correct DAG version when a task starts from a trigger (#69988) - #72614

Merged
vatsrahul1001 merged 1 commit into
v3-3-testfrom
backport-aead443-v3-3-test
Sep 8, 2026
Merged

vatsrahul1001 merged 1 commit into
v3-3-testfrom
backport-aead443-v3-3-test

Conversation

@github-actions

@github-actions github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor
  • Pin triggerer start_from_trigger DAG resolution to the dagrun's version

  • Resolve trigger Dag version via _version_from_dag_run for pinned/unpinned parity

  • Skip triggers whose task is missing from the resolved Dag version

For an unpinned run the resolved (latest) Dag version may no longer
contain a renamed or removed deferred task. get_task() then raised
TaskNotFound, which nothing on the load_triggers path caught, killing
the whole triggerer; assign_unassigned re-handed the same trigger to the
restarted triggerer, producing a crash loop. Guard the lookup and fall
through to the plain workload, mirroring the guard in the execution API.

Also introduce DBDagBag.get_serialized_dag_model_for_run so the
triggerer uses a public API instead of the private _version_from_dag_run
helper, as requested in review.
(cherry picked from commit aead443)

Co-authored-by: Sean Ghaeli 58916776+seanghaeli@users.noreply.github.com

…igger (#69988)

* Pin triggerer start_from_trigger DAG resolution to the dagrun's version

* Resolve trigger Dag version via _version_from_dag_run for pinned/unpinned parity

* Skip triggers whose task is missing from the resolved Dag version

For an unpinned run the resolved (latest) Dag version may no longer
contain a renamed or removed deferred task. get_task() then raised
TaskNotFound, which nothing on the load_triggers path caught, killing
the whole triggerer; assign_unassigned re-handed the same trigger to the
restarted triggerer, producing a crash loop. Guard the lookup and fall
through to the plain workload, mirroring the guard in the execution API.

Also introduce DBDagBag.get_serialized_dag_model_for_run so the
triggerer uses a public API instead of the private _version_from_dag_run
helper, as requested in review.
(cherry picked from commit aead443)

Co-authored-by: Sean Ghaeli <58916776+seanghaeli@users.noreply.github.com>
@vatsrahul1001
vatsrahul1001 marked this pull request as ready for review September 8, 2026 06:13
@vatsrahul1001 vatsrahul1001 added this to the Airflow 3.3.2 milestone Sep 8, 2026
@vatsrahul1001 vatsrahul1001 added the type:bug-fix Changelog: Bug Fixes label Sep 8, 2026
@vatsrahul1001
vatsrahul1001 merged commit a3b282b into v3-3-test Sep 8, 2026
145 checks passed
@vatsrahul1001
vatsrahul1001 deleted the backport-aead443-v3-3-test branch September 8, 2026 09:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:Triggerer type:bug-fix Changelog: Bug Fixes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants