For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
      • AstroFully-managed data operations, powered by Apache Airflow.
      • Astro Private CloudRun Airflow-as-a-service in your environment.
      • Professional ServicesExpert Airflow services for your enterprise's success.
    • Tools
      • Cosmos
      • Orbiter
      • CLI
      • AI SDK
      • Agents
      • Blueprint
      • UpdatesThe State of Airflow 2026See the insights from over 5,800 data practitioners in the full report. Download Now ➔
  • Customers
  • Docs
    • Insights
      • Blog
      • Webinars
      • Resource Library
      • Events
    • Education
      • Academy
      • What is Airflow?
  • Pricing
Get Started Free
    • Overview
      • Airflow edge cases on Astro
      • Astro Runtime upgrades
      • Choosing Airflow or Astro alerts
      • Rightsize Airflow on Astro
      • Connections and branch-based deploys
      • Cross-deployment dependencies
      • DAG writing on Astro
      • Manage dev Deployments
      • Work with the Astro API
      • Manage resources
      • Repository strategy
      • Git submodules
    • Book Office Hours

Product

  • Platform Overview
  • Astro
  • Astro Observe
  • Astro Private Cloud
  • Security & Trust
  • Pricing

Tools & Services

  • Cosmos
  • Docs
  • Professional Services
  • Product Updates

Use Cases

  • AI Ops
  • Data Observability
  • ETL/ELT
  • ML Ops
  • Operational Analytics
  • All Use Cases

Industries

  • Financial Services
  • Gaming
  • Retail
  • Manufacturing
  • Healthcare
  • All Industries

Resources

  • Academy
  • eBooks & Guides
  • Blog
  • Webinars
  • Events
  • The Data Flowcast Podcast
  • All Resources

Airflow

  • What is Airflow
  • Airflow on Astro
  • Airflow 3.0
  • Airflow Upgrades
  • Airflow Use Cases
  • Airflow 2.x End of Life

Company

  • Our Story
  • Customers
  • Newsroom
  • Careers
  • Contact

Support

  • Knowledge Base
  • Status
  • Contact Support
GitHubYouTubeLinkedInx
  • Legal
  • Privacy
  • Terms of Service
  • Consent Preferences

  • Do Not Sell or Share My Personal information
  • Limit the Use Of My Sensitive Personal Information

Apache Airflow®, Airflow, and the Airflow logo are trademarks of the Apache Software Foundation. Copyright © Astronomer 2026. All rights reserved.

LogoLogo
On this page
  • Best practice guidance
  • Rationale
  • Performing an upgrade
  • Monitoring for upgrades
  • Roll back Deployments after a broken upgrade
  • See also
  • Footnotes
Best practices

Best practices for upgrading Astro Runtime on Astro

Edit this page
Built with

Astro includes features that make upgrading to the latest version of Astro Runtime easy and, more importantly, safe. When leveraging these features, follow these best practices to ensure that your Deployments remain stable after you upgrade:

  • Monitor for upgrade opportunities using Organization dashboards, as well as by following the Astro Runtime maintenance and lifecycle policy.
  • Check Upgrade Astro Runtime for advisories on the specific version you’re upgrading to.
  • Prepare to upgrade safely using upgrade tests.
  • In the case of a malfunction after upgrading, revert to your original Astro Runtime version using deploy rollbacks.

Use this document to learn more about each of these best practices for upgrading Astro Runtime.

Best practice guidance

Astronomer allows you to control the version of Astro Runtime that you run your Astro deployments on 1, but we do also have an opinionated best practice that we believe most Astro users would benefit from following.

Astronomer recommends:

  • Using the slim version of Astro Runtime
  • Staying on the very latest release of Astro Runtime, i.e., always upgrading as soon as possible
  • Controlling your provider dependencies explicitly, by specifying their versions in your requirements.txt file

In your Dockerfile:

1# Upgrade this as often as you can - it's safe
2# Use astro-runtime-slim instead of astro-runtime
3FROM quay.io/astronomer/astro-runtime-slim:12.8.0

In your requirements.txt file:

1# Use ~= to allow upgrading minor and patch version, but not breaking changes
2# Only upgrade major versions explicitly, and only after reviewing release notes
3
4apache-airflow-providers-google ~= 14.0 # release notes: https://airflow.apache.org/docs/apache-airflow-providers-google/stable/changelog.html
5apache-airflow-providers-snowflake ~= 6.1 # release notes: https://airflow.apache.org/docs/apache-airflow-providers-snowflake/stable/changelog.html

Rationale

Astronomer thinks about the Airflow code in two major categories:

  • The core is the apache-airflow package plus the providers that are required to run successfully on Astro, for example the astronomer-logging-provider. This provider is part of the core because without it, task logs will not work on Astro.

  • The optional providers are packages like apache-airflow-providers-google that extend Airflow by providing operators that help you interface with services or perform common tasks without having to write a lot of new code. You only need to install a optional provider packages for the specific services and tasks that you actually use in your Astro deployment.

The main concept underpinning Astronomer’s upgrade recommendations is that you should always strictly prefer the latest version of core, but you may not necessarily want the latest provider versions for the operators that you use. Great pains are taken in core to prevent backwards incompatibilities and bugs that could be disruptive to your Airflow pipelines. Because the slim version of Runtime contains only the core parts of Airflow and no optional providers, you never need to change your Dag code to upgrade to the latest Runtime slim version2, unless you are upgrading from Airflow 2 to Airflow 3, which rarely necessitates code level changes.

Fortunately, the optional providers can be both upgraded and downgraded freely, without requiring rollbacks. Which means that the risk introduced by upgrading pre-maturely is low. In many cases it can be a rational choice to simply upgrade your optional providers to the latest version, run your Dags and see if anything breaks. If you get an unexpected Dag import error or task failure, evaluate if that failure could have been caused by the provider upgrade.

However, for greater safety when working with production deployments, it is prudent to check the provider release notes for the major version you are upgrading to and assess them for any breaking changes that might impact your dags.

Performing an upgrade

The Astro CLI has built-in functionality to identify major version upgrades in packages which could introduce breaking changes to your dags. Astronomer recommends making use of this feature prior to every upgrade.

Use the process described in Upgrade Astro Runtime as the basis for all upgrades. It gives step-by-step guidance on completing an upgrade, as well as version-specific advice. In particular, the following steps should be followed for a smooth upgrade:

  • Run upgrade tests to anticipate and address problems. This involves a single command that:

    • Compares dependency versions between the current and upgraded environments.

    • Checks Dags in the project against the new Airflow version for errors.

    • Runs a Dag parse test with the new Airflow version.

    • Produces in new project directory upgrade-test-<current_version>--<upgraded_version>:

      • An upgraded Dockerfile.
      • pip freeze output for both versions.
      • A report with environment metadata and a Results table including any errors logged.
    • A Dependency Compare report listing the upgrades, additions and removals coming in the new Astro runtime version and underlying Airflow package. For example, a “Major Updates” section lists the packages receiving new major versions, and a “Minor Updates” lists the packages receiving new minor versions:

    Major Updates:
    azure-mgmt-datafactory 6.1.0 >> 7.0.0
    Minor Updates:
    Flask-Caching 2.1.0 >> 2.2.0

For more details about the upgrade-test command, see Testing your Astro project locally.

Monitoring for upgrades

Astro users on the Enterprise plan can use Organization dashboards to check whether their presently running Astro Runtime versions are currently maintained, as well as how much time is left before they become unmaintained. This is especially helpful in cases where your Organization has many Deployments to track. See Organization dashboards for steps to access these dashboards.

If you are not on the Astro Enterprise plan, you can still reference the Astro Runtime maintenance and lifecycle policy to see when you’ll need to upgrade your Deployments to a new version of Astro Runtime. A Deployment Health Alert will also be displayed if a Deployment is on an unmaintained Astro Runtime version.

Roll back Deployments after a broken upgrade

Astro supports rolling back from Airflow 3 to Airflow 2 but not all Airflow 3.x Deployments can be reverted to all Airflow 2.x versions. Review the Airflow 3 to Airflow 2 rollback requirements.

In the case of an emergency, you can roll back to your previous deploy to downgrade the Astro Runtime version. Astro’s rollback functionality is similar to the Git revert command. Rollbacks revert project code only, keeping environment variables and other configuration unchanged.

Some rollbacks require reverting the underlying database schema used by Airflow. Sometimes, data cannot be represented in the older schema and so will be dropped by the rollback process. For example, if you upgrade to Runtime 12, new tasks will have the try number associated with Event Logs, but if you roll back to a previous version, these try numbers will be lost. This data is always data that would not have been present to begin with if you had not upgraded your Runtime, so there is not risk of data loss from the overall process of upgrading and subsequently rolling back.

The upgrade-test command can also be used to test the current Runtime version against a downgraded version.

See also

  • Upgrade Astro Runtime.

Footnotes

  1. Subject to certain restrictions ↩

  2. Unless you are directly accessing the Airflow metadata database from your task code. We strongly recommend that you never do this; it’s a great way to break things, and it won’t work with Airflow 3. ↩