The GitHub Actions job "Tests (AMD)" on 
airflow.git/fix/67224-kpo-deferrable-multiple-outputs has failed.
Run started by GitHub user paultmathew (triggered by paultmathew).

Head commit for run:
07812a6696612716e7ab2e823da14cfd9d871b3c / Paul Mathew <[email protected]>
Apply multiple_outputs fan-out to KPO failure paths consistently

Address review on #67226: the previous commit fixed the success path on
deferrable KPO but left both sync and async failure paths still pushing
only ``return_value``, silently dropping ``multiple_outputs`` fan-out.

Add an operator-local ``_push_xcom_with_fan_out`` helper that mirrors the
task runner's ``_push_xcom_if_needed`` and call it from both failure-path
manual pushes (sync ``post_complete_action`` and async ``trigger_reentry``).
All four code paths — sync success/failure, async success/failure — now
honour ``multiple_outputs`` consistently.

Promoting ``_push_xcom_if_needed`` to a public task-SDK helper would let
other operators that manually push XCom on failure paths reuse the same
logic and would be a cleaner long-term fix. Left as a follow-up since
manual ``XCOM_RETURN_KEY`` pushes are essentially KPO-specific today
(grep across all providers turns up only one other operator) and the
local helper keeps this PR's blast radius matched to its scope.

Tests:
- New ``test_xcom_push_failed_pod_fans_out_for_multiple_outputs`` covers
  the sync failure path.
- New ``test_async_trigger_reentry_failure_fans_out_for_multiple_outputs``
  covers the async failure path.

Also incorporate review nits: drop unnecessary comments, switch ``is`` to
``==`` for dict equality checks, and trim the historical context from the
new test docstring (moved to the PR description).

Co-authored-by: Cursor <[email protected]>

Report URL: https://github.com/apache/airflow/actions/runs/26247976029

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to