Hello Eugen,

Yeah this is a different one. The issue you mention has been added in the
migration rules via this PR: https://github.com/apache/airflow/pull/49546
to clarify the migration experience.

Thanks & Regards,
Amogh Desai


On Tue, Apr 22, 2025 at 5:57 PM Eugen Kosteev <eu...@kosteev.com> wrote:

> 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