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

Reply via email to