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

kaxilnaik pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new dda86263e8a Adding change in `xcom_pull` behaviour to release notes 
(#49455)
dda86263e8a is described below

commit dda86263e8a9c171d91729f14668028408568022
Author: Amogh Desai <[email protected]>
AuthorDate: Tue Apr 22 15:19:55 2025 +0530

    Adding change in `xcom_pull` behaviour to release notes (#49455)
---
 RELEASE_NOTES.rst       | 20 ++++++++++++++++++++
 reproducible_build.yaml |  4 ++--
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/RELEASE_NOTES.rst b/RELEASE_NOTES.rst
index 1a519f204b0..8324131e799 100644
--- a/RELEASE_NOTES.rst
+++ b/RELEASE_NOTES.rst
@@ -331,6 +331,26 @@ The internal representation of asset event triggers now 
also includes an explici
 aligning with the broader asset-aware execution model introduced in Airflow 
3.0. DAG authors interacting directly with
 ``inlet_events`` may need to update logic that assumes the previous structure.
 
+
+Predictable Behaviour of ``xcom_pull``
+""""""""""""""""""""""""""""""""""""""
+
+In Airflow 2, the ``xcom_pull()`` method allowed pulling XComs by key without 
specifying task_ids, despite the fact that the underlying
+DB model defines task_id as part of the XCom primary key. This created 
ambiguity: if two tasks pushed XComs with the same key,
+``xcom_pull()`` would pull whichever one happened to be first, leading to 
unpredictable behavior.
+
+Airflow 3 resolves im inconsistency by requiring ``task_ids`` when pulling by 
key. This change aligns with the task-scoped nature of
+XComs as defined by the schema, ensuring predictable and consistent behavior.
+
+DAG Authors should update their dags to use ``task_ids`` if their dags used 
``xcom_pull`` without ``task_ids`` such as::
+
+  kwargs["ti"].xcom_pull(key="key")
+
+Should be updated to::
+
+  kwargs["ti"].xcom_pull(task_ids="task1", key="key")
+
+
 Removed Configuration Keys
 """""""""""""""""""""""""""
 
diff --git a/reproducible_build.yaml b/reproducible_build.yaml
index 163be3fdb24..3ed76c96ba9 100644
--- a/reproducible_build.yaml
+++ b/reproducible_build.yaml
@@ -1,2 +1,2 @@
-release-notes-hash: 00a97e0a1a68a6eebd9803edbc7a8b84
-source-date-epoch: 1745220190
+release-notes-hash: 4d3a20b56440122fcbd72bf1b8c9020e
+source-date-epoch: 1745314549

Reply via email to