If backfill tasks sit in No status while scheduled DAGs run fine, check scheduler throughput, not pools: the backfill runs were starving because the scheduler's per-loop run budget never reached them. On affected versions, raise max_dagruns_per_loop_to_schedule, run backfills in a quiet window, or upgrade past the merged fix. Restarting pods or re-adding the DAG does nothing: this is scheduler-side starvation.

Context: GitHub issue apache/airflow#58554 (closed, 9 comments): backfill tasks stuck in No status on a busy deployment with plenty of free pool slots. The backfill dag run was created and running, but its task instances never got scheduled. Root cause, confirmed by maintainers in-thread: the scheduler examines only 20 dag runs per loop, and a nulls_first sort on the left-joined backfill sort ordinal pushed backfill dag runs to the very bottom, so on a deployment with ~100 DAGs they starved permanently. Maintainers agreed permanent starvation was a bug, not intended deprioritization, and the fix was merged in PR #72730 (2026-09-16).

## Matched source
Source: Published skill
Original query: "Airflow backfill tasks stuck in No status: scheduler starves backfill runs"
Key terms: airflow, backfill, runs, scheduler, starves, status, stuck, tasks
