Join us at inaugural PyAI Conf in San Francisco on March 10th! Learn more
Airflow 2 in Limited Maintenance

Your Airflow upgrade is coming. Make it count.

Airflow 2 is now in limited maintenance—security patches only. Airflow 3 requires significant architectural changes. Choose the platform that moves you forward.

Limited maintenance is now active
Time remaining until Airflow 2 End of Life
110
days
05
hours
56
min
18
sec

Limited maintenance is active

Airflow 2 entered limited maintenance 71 days ago

Before Oct 2025

Full Support

This phase has ended

Active now

Limited Maintenance

Security and critical bug fixes only. No new features.

April 22, 2026

End of Life

No more updates. Upgrade to Airflow 3 or switch platforms.

What actually breaks in Airflow 3

The most significant architectural changes since Airflow 2.0

No direct database access

All custom operators using metadata database directly must be completely refactored to use the new Task Execution API.

SubDAGs removed

SubDagOperator no longer exists. All SubDAGs must be converted to TaskGroups—requiring significant code rewrites.

Every import changes

Import paths overhauled from airflow.models to airflow.sdk. Every file touching Airflow needs updates.

New mandatory components

dag-processor and api-server are now required. Your deployment infrastructure needs restructuring.

Template variables removed

execution_date, prev_ds, next_ds, and other common templates are gone. DAGs using these will fail.

Cannot skip versions

Must upgrade through 2.7 → 2.10 → 3.0. No direct jumps allowed. Each step requires testing.

What Airflow 3 upgrades look like in the wild

Real issues teams hit when migrating from Airflow 2 to Airflow 3.

apache/airflow#48542

Upgrading from Airflow 2.10.5 to 3.0.0 failed due to database migration errors. The migration tried to drop an index that's still needed for a foreign key constraint, causing the entire upgrade process to fail.

View issue on GitHub →
apache/airflow#57234

After waiting for Airflow 3.1 to fix initial bugs, the upgrade from 2.11.0 to 3.1.0 still failed. The database migration couldn't convert the XCom table from bytea to jsonb because it contained invalid JSON data, blocking the entire upgrade.

View issue on GitHub →
apache/airflow#56306

After upgrading to Airflow 3, DAG import errors started occurring. The workaround requires manually updating dag_id parameters or deleting entries from serialized_dag and dag_code tables, which is a risky manual database operation.

View issue on GitHub →
apache/airflow#55766

After upgrading to Airflow 3.0.6, multiple executors stopped working correctly. Tasks assigned to KubernetesExecutor were being routed to CeleryExecutor instead, regardless of queue configuration, breaking our entire task execution strategy.

View issue on GitHub →
apache/airflow#56271

After upgrading from Airflow 3.0.3 to 3.1.0, KubernetesExecutor stopped working entirely. Tasks that specified KubernetesExecutor failed with errors saying the executor wasn't available, even though it was properly configured.

View issue on GitHub →
apache/airflow#58894

Upgrading from Airflow 2.11 to 3.1.3 on MySQL 8.0.35 failed because the migration used index creation syntax that MySQL doesn't support. The migration script assumed database features that don't exist in MySQL.

View issue on GitHub →

Teams using Prefect in production

Cash App
Washington Nationals
WHOOP
Cisco
1Password
Dutch
NASA
CoinList
Ashby
Square
Meta
Eight Sleep

Same effort. Different outcome.

Both paths require work. Choose the one that moves you forward.

Technical debt

Upgrade to Airflow 3

  • Step through 2.7 → 2.10 → 3.0 versions
  • Refactor all custom operators for new API
  • Update every import path in your codebase
  • Convert all SubDAGs to TaskGroups
  • Restructure deployment for new components
  • Still have static DAGs and centralized scheduler
Recommended

Migrate to Prefect

  • Remove Airflow boilerplate, keep your Python logic
  • Simple decorators instead of operator classes
  • Dynamic workflows that adapt to your data
  • 60-70% infrastructure cost savings
  • Your data stays in your infrastructure
  • Migration assistance from our team

We'll help you migrate

Our team has helped hundreds of organizations transition from Airflow to Prefect. We'll work with you to plan your migration and ensure a smooth transition.

  • Migration assessment and planning
  • Best practices for converting DAGs to flows
  • Dedicated support during transition
  • Transparent pricing without surprises

Start your migration assessment

Talk to our team about your Airflow infrastructure, timeline, and migration strategy. Free consultation, no commitment.

Airflow 2 EOL Migration Guide | Prefect