Skip to content
Airflow 2 End of Life

Airflow 2 has reached end of life.

Airflow 2 has reached end of life. If you're still on Airflow 2, it's time to migrate. Choose the platform that moves you forward.

Airflow 2 has reached End of Life

The deadline has passed

Airflow 2 is no longer supported. Migration is now critical.

Before Oct 2025

Full Support

This phase has ended

Oct 22, 2025

Limited Maintenance

This phase has passed

End of Life

No Longer Supported

Airflow 2 is no longer receiving any updates.

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
Endpoint
Washington Nationals
WHOOP
Seven.One Entertainment
Cisco
1Password
Dutch
NASA
CoinList
Ashby
Square

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.