# Apache Airflow 3.2.0 — Apache Airflow 3.2.0 - Product: Apache Airflow (https://whatsnew.fyi/product/apache-airflow) - Vendor: Apache Software Foundation - Date: 2026-04-07 - Version: 3.2.0 - Original notes: https://github.com/apache/airflow/releases/tag/3.2.0 - Permalink: https://whatsnew.fyi/product/apache-airflow/releases/3.2.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Asset partitioning feature allows scheduling downstream processing based on specific partitions of data instead of entire assets - **added** — Multi-team deployments support enabling organizations to run multiple isolated teams within a single Airflow deployment with separate Dags, connections, variables, pools, and executors - **added** — Synchronous callback support for Deadline Alerts via SyncCallback in addition to asynchronous AsyncCallback - **added** — Grid view now uses virtualization to render only visible rows, improving performance for Dags with large numbers of task runs - **added** — XCom values can now be added, edited, and deleted directly from the Airflow UI - **added** — Human-in-the-Loop approval interface now includes full history view showing complete audit trail of approvals and rejections - **added** — Gantt chart now displays all task tries, not just the latest attempt - **added** — Task display names now shown in Gantt chart for better readability - **added** — New --only-idle flag for the scheduler CLI to only count runs when the scheduler is idle - **changed** — Grid, graph, gantt, and task-detail views now fetch task-instance summaries through a single streaming HTTP request instead of one request per run - **changed** — Old single-run endpoint GET /ui/grid/ti_summaries/{dag_id}/{run_id} has been removed in favor of streaming endpoint - **added** — Structured JSON logging for all API server output via new json_logs option under [logging] section - **fixed** — Gantt chart no longer crashes on tasks with null datetime fields - **changed** — Gantt chart now uses ISO dates for cross-browser consistent date format 📦 PyPI: https://pypi.org/project/apache-airflow/3.2.0/ 📚 Docs: https://airflow.apache.org/docs/apache-airflow/3.2.0/ 🛠 Release Notes: https://airflow.apache.org/docs/apache-airflow/3.2.0/release_notes.html 🐳 Docker Image: "docker pull apache/airflow:3.2.0" 🚏 Constraints: https://github.com/apache/airflow/tree/constraints-3.2.0 ##### Significant Changes ###### Asset Partitioning The headline feature of Airflow 3.2.0 is asset partitioning — a major evolution of data-aware scheduling. Instead of triggering Dags based on an entire asset, you can now schedule downstream processing based on specific partitions of data. Only the relevant slice of data triggers downstream work, making pipeline orchestration far more efficient and precise. This matters when working with partitioned data lakes — date-partitioned S3 paths, Hive table partitions, BigQuery table partitions, or any other partitioned data store. Previously, any update to an asset triggered all downstream Dags regardless of which partition changed. Now only the right work gets triggered at the right time. For detailed usage instructions, see :doc:`/authoring-and-scheduling/assets`. ###### Multi-Team Deployments Airflow 3.2 introduces multi-team support, allowing organizations to run multiple isolated teams within a single Airflow deployment. Each team can have its own Dags, connections, variables, pools, and executors— enabling true resource and permission isolation without requiring separate Airflow instances per team. This is particularly valuable for platform teams that serve multiple data engineering or data science teams from shared infrastructure, while maintaining strong boundaries between teams' resources and access. For detailed usage instructions, see :doc:`/core-concepts/multi-team`. .. warning:: Multi-Team Deployments are experimental in 3.2.0 and may change in future versions based on user feedback. ###### Synchronous callback support for Deadline Alerts Deadline Alerts now support synchronous callbacks via ``SyncCallback`` in addition to the existing asynchronous ``AsyncCallback``. Synchronous callbacks are executed by the executor (rather than the triggerer), and can optionally target a specific executor via the ``executor`` parameter. A Dag can also define multiple Deadline Alerts by passing a list to the ``deadline`` parameter, and each alert can use either callback type. .. warning:: Deadline Alerts are experimental in 3.2.0 and may change in future versions based on user feedback. Synchronous deadline callbacks (``SyncCallback``) do not currently support Connections stored in the Airflow metadata database. For detailed usage instructions, see :doc:`/howto/deadline-alerts`. ###### UI Enhancements & Performance - **Grid View Virtualization**: The Grid view now uses virtualization -- only visible rows are rendered to the DOM. This dramatically improves performance when viewing Dags with large numbers of task runs, reducing render time and memory usage for complex Dags. (#60241) - **XCom Management in the UI**: You can now add, edit, and delete XCom values directly from the Airflow UI. This makes it much easier to debug and manage XCom state during development and day-to-day operations without needing CLI commands. (#58921) - **HITL Detail History**: The Human-in-the-Loop approval interface now includes a full history view, letting operators and reviewers see the complete audit trail of approvals and rejections for any task. (#56760, #55952) - **Gantt Chart Improvements**: - All task tries displayed: Gantt chart now shows every attempt, not just the latest - Task display names in Gantt: task_display_name shown for better readability (#61438) - ISO dates in Gantt: Cross-browser consistent date format (#61250) - Fixed null datetime crash: Gantt chart no longer crashes on tasks with null datetime fields ###### New ``--only-idle`` flag for _[Truncated at 4000 characters — full notes: https://github.com/apache/airflow/releases/tag/3.2.0]_