โ ๏ธ 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)
โก 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