Apache Airflow 3.0.2stable Released Jun 10, 2025
โš ๏ธ Breaking Change Impact Score: 7/10

Apache Airflow: Airflow 3.0.2

Source available โ€” automated, not human-reviewed

Component: airflow ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Breaking-change evidence from the source

  • - Remove unnecessary breaking flag in config command (#50781)
Read the original context โ†—
Source flags breaking changes โ€” review applicability
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Apache Airflow 3.0.2. Source highlight: ๐Ÿ“ฆ PyPI: https://pypi.org/project/apache-airflow/3.0.2/

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

โš ๏ธ Breaking Changes & Deprecations (1)

  • - Remove unnecessary breaking flag in config command (#50781)

โœจ New Features & Capabilities (6)

  • UI: Add basic json check to variable value
  • Add a link to the Airflow logo in Nav (#50304)
  • Added a direct link to the latest DAG run in the DAG header (#51119,#51148)
  • Add ``owner_links`` field to ``DAGDetailsResponse`` for enhanced owner metadata in the API (#50557)
  • Add dates for Limited Maintenance & EOL for Airflow 2.x (#50794)
  • Add Apache Airflow setup instructions for Apple Silicon (#50179)

โšก Performance & Enhancements (2)

  • Optimized DAG header to fetch only the most recent DAG run for improved performance (#50767)
  • Enhanced task log viewer with virtualized rendering for improved performance on large logs (#50746)

๐Ÿ”ง Bug Fixes & Patches (6)

  • Fix memory leak in dag-processor (#50558)
  • Add back invalid inlet and outlet check before running tasks (#50773)
  • Implement slice on LazyXComSequence to allow filtering items from a mapped task(#50117)
  • Fix execution API server URL handling for relative paths in KE (#51183)
  • Add log lookup exception for Empty operator subtypes (#50325)
  • Increase the max zoom on the graph view to make it easier to see small dags on big monitor screens (#50772)
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
## What's Changed ๐Ÿ“ฆ PyPI: https://pypi.org/project/apache-airflow/3.0.2/ ๐Ÿ“š Docs: https://airflow.apache.org/docs/apache-airflow/3.0.2/ ๐Ÿ› ๏ธ Release Notes: https://airflow.apache.org/docs/apache-airflow/3.0.2/release_notes.html ๐Ÿชถ Sources: https://airflow.apache.org/docs/apache-airflow/3.0.2/installation/installing-from-sources.html ## Bug Fixes - Fix memory leak in dag-processor (#50558) - Add back invalid inlet and outlet check before running tasks (#50773) - Implement slice on LazyXComSequence to allow filtering items from a mapped task(#50117) - Fix execution API server URL handling for relative paths in KE (#51183) - Add log lookup exception for Empty operator subtypes (#50325) - Increase the max zoom on the graph view to make it easier to see small dags on big monitor screens (#50772) - Fix timezone selection and dashboard layout (#50463) - Creating backfill for a dag is affecting other dags (#50577) - Fix next asset schedule and dag card UX (#50271) - Add bundle path to ``sys.path`` in task runner (#51318) - Add bundle path to ``sys.path`` in dag processor (#50385) - Prevent CPU spike in task supervisor when heartbeat timeout exceeded (#51023) - Fix Airflow Connection Form widget error (#51168) - Add backwards compatibility shim and deprecation warning for EmailOperator (#51004) - Handle ``SIGSEGV`` signals during DAG file imports (#51171) - Fix deferred task resumption in ``dag.test()`` (#51182) - Fix get dags query to not have join explosion (#50984) - Ensure Logical date is populated correctly in Context vars (#50898) - Mask variable values in task logs only if the variable key is sensitive (#50775) - Mask secrets when retrieving variables from secrets backend (#50895) - Deserialize should work while retrieving variables with secrets backend (#50889) - Fix XCom deserialization for mapped tasks with custom backend (#50687) - Support macros defined via plugins in Airflow 3 (#50642) - Fix Pydantic ``ForwardRef`` error by reordering discriminated union definitions (#50688) - Adding backwards compatibility shim for ``BaseNotifier`` (#50340) - Use latest bundle version when clearing / re-running dag (#50040) - Handle ``upstream_mapped_index`` when xcom access is needed (#50641) - Remove unnecessary breaking flag in config command (#50781) - Do not flood worker logs with secrets backend loading logs (#50581) - Persist table sorting preferences across sessions using local storage (#50720) - Fixed patch_task_instance API endpoint to support task instance summaries and task groups (#50550) - Fixed bulk API schemas to improve OpenAPI compatibility and client generation (#50852) - Fixed variable API endpoints to support keys containing slashes (#50841) - Restored backward compatibility for the ``/run`` API endpoint for older Task SDK clients - Fixed dropdown overflow and error text styling in ``FlexibleForm`` component (#50845) - Corrected DAG tag rendering to display ``+1 more`` when tags exceed the display limit by one (#50669) - Fix permission check on the ui config endpoint (#50608) - Fix ``default_args`` handling in operator ``.partial()`` to prevent ``TypeError`` when unused keys are present (#50525) - DAG Processor: Fix index to sort by last parsing duration (#50388) - UI: Fix border overlap issue in the Events page (#50453) - Fix ``airflow tasks clear`` command (#49631) - Restored support for ``--local`` flag in ``dag list`` and ``dag list-import-errors`` CLI commands (#49380) - CLI: Exclude example dags when a bundle is passed (#50401) - Fix CLI export to handle stdout without file descriptors (#50328) - Fix ``DagProcessor`` stats log to show the correct parse duration (#50316) - Fix OpenAPI schema for ``get_log`` API (#50547) - Remove ``logical_date`` check when validating inlets and outlets (#51464) - Guard ``ti`` update state and set task to fail if exception encountered (#51295) ## Miscellaneous - UI: Implement navigation on bar click (#50416) - UI: Always Show Trends count in Dag Overview (#50183) - UI: Add basic json check to variable value - Remove filtering by last dag run state in patch dags endpoint (#51347) - Ensure that both public and ui dags endpoints map to DagService (#51226) - Refresh Dag details page on new run (#51173) - Log fallback to None when no XCom value is found (#51285) - Move ``example_dags`` in standard provider to ``example_dags`` in sources (#51275) - Bring back "standard" example dags to the ``airflow-core`` package (#51192) - Faster note on grid endpoint (#51247) - Port ``task.test`` to Task SDK (#50827) - Port ``dag.test`` to Task SDK (#50300,#50419) - Port ``ti.run`` to Task SDK execution path (#50141) - Support running ``airflow dags test`` from local files (#50420) - Move macros to task SDK ``execution_time`` module (#50940) - Add a link to the Airflow logo in Nav (#50304) - UI: Bump minor and patch package json dependencies (#50298) - Added a direct link to the latest DAG run in the DAG header (#51119,#51148) - Fetch only the most recent ``dagrun`` value for list display (#50834) - Move ``secret_key`` config to ``api`` section (#50839) - Move various ``webserver`` configs to ``fab`` provider (#50774,#50269,#50208,#50896) - Make ``dag_run`` nullable in Details page (#50719) - Rename Operation IDs for task instance endpoints to include map indexes (#49608) - Update default sort for connections and dags (#50600) - Raise exception if downgrade can't proceed due to no ``ab_user`` table (#50343) - Enable JSON serialization for variables created via the bulk API (#51057) - Always display the backfill option in the UI; enable it only for DAGs with a defined schedule (#50969) - Optimized DAG header to fetch only the most recent DAG run for improved performance (#50767) - Add ``owner_links`` field to ``DAGDetailsResponse`` for enhanced owner metadata in the API (#50557) - UI: Move map index column to be in line with other columns when viewing a summary mapped tasks (#50302) - Separate configurations for colorized and json logs in Task SDK / Celery Executor (#51082) - Enhanced task log viewer with virtualized rendering for improved performance on large logs (#50746) ## Doc Only Changes - Add dates for Limited Maintenance & EOL for Airflow 2.x (#50794) - Add Apache Airflow setup instructions for Apple Silicon (#50179) - Update recommendation for upgrade path to airflow 3 (#50318) - Add "disappearing DAGs" section on FAQ doc (#49987) - Update Airflow 3 migration guide with step about custom operators (#50871) (#50948) - Use ``AssetAlias`` for alias in Asset ``Metadata`` example (#50768) - Do not use outdated ``schedule_interval`` in tutorial dags (#50947) - Add Airflow Version in Page Title (#50358) - Fix callbacks docs (#50377) - Updating operator extra links doc (#50197) - Prune old Airflow versions from release notes (#50860) - Fix types in config templates reference (#50792) - Fix wrong import for ``PythonOperator`` in tutorial dag (#50962) - Better structure of extras documentation (#50495) **Full Changelog**: https://github.com/apache/airflow/compare/3.0.1...3.0.2