Hi Amogh. Thanks for your reply. Isn't this a different issue: requiring task_ids parameter or not vs if it is provided as a list with one element?
- Eugene On Tue, Apr 22, 2025 at 11:02 AM Amogh Desai <amoghdesai....@gmail.com> wrote: > Hello Eugen, > > Thanks for reaching out. We have already had a discussion about this over > here > <https://apache-airflow.slack.com/archives/C07813CNKA8/p1744891399213529>. > > Yes, this change was intentional in Airflow 3. Here’s why: > > 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 this 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. > > > We will be fixing this in a later patch release but to answer your > question, it is an intended change and is being handled in migration > guide via the PR: https://github.com/apache/airflow/pull/49455 > > > Thanks & Regards, > Amogh Desai > > > On Tue, Apr 22, 2025 at 2:22 PM Eugen Kosteev <eu...@kosteev.com> wrote: > > > Hi. > > > > Sorry, if this was already discussed, I haven't found any trace in github > > issues. > > > > There is the following discrepancy in xcom_pull behavior between Airflow > 2 > > and 3: > > > > In case of the xcom_pull with task_ids=["{task_id}"] (list with one > value): > > - in Airflow 2 LazyXComSelectSequence is returned (with one object) > > - in Airflow 3 the value itself is returned > > > > Details in github issue: > > https://github.com/apache/airflow/issues/49540 > > > > Similar/related issue https://github.com/apache/airflow/issues/46513. > > > > Since it is a change in the public XCOM interface, it is quite likely > that > > it will break many DAGs. > > We should fix it in Airflow 3 or describe it in the migration guide (if > it > > is intended change). > > > > Is it an intended change, or a miss? > > > > -- > > Eugene > > > -- Eugene