Heroku-20 End-of-Life FAQ

Summary

Heroku-20, our stack based on Ubuntu 20.04 Long Term Support, will reach end-of-life on April 30th, 2025. From May 1st, 2025, the building of Heroku-20 apps will no longer be supported, meaning it will not be possible to perform new code deployments.

Apps using the Heroku-20 stack will continue to run, but should be upgraded to a more recent stack to maintain access to security updates, technical support, and the ability to deploy new code.

Why is the Heroku-20 end-of-life occurring?

Support for Heroku stacks is synchronized with the release lifecycle of the upstream Ubuntu Long Term Support release on which they are based. Heroku-20 is based upon Ubuntu 20.04 LTS, for which Canonical's standard five-year support (including availability of bug and security fixes) ends on April 30th, 2025.

As such, in accordance with our stack update policy and documented stack support dates, the Heroku-20 stack will reach end-of-life on April 30th, 2025.

Heroku-20 was superseded by Heroku-22 in June 2022, followed by Heroku-24 in June 2024.

What is the Heroku-20 end-of-life timetable?

  • June 24, 2024: Heroku-20 stack was deprecated.
  • August 1, 2024: End-of-life warning emails begin for apps actively performing builds (new code deployments) on Heroku-20.
  • February 1, 2025: The first build of each Heroku-20 app within a 7-day period will now fail with a deprecation notice. Subsequent builds during that period will proceed normally.
  • April 1, 2025: The first build of each Heroku-20 app within a 24-hour period will now fail with a deprecation notice. Subsequent builds during that period will proceed normally.
  • April 30, 2025: Heroku-20 stack reaches end-of-life. Heroku-20 apps will continue to run, but no longer receive security updates, will receive only limited technical support, and be run at your own risk.
  • May 1, 2025: No further builds (code deployments) will be allowed for any Heroku-20 apps, including those used by Review Apps and Heroku CI. All other non-build functionality will continue to work, and existing apps will continue to run. It will no longer be possible to create new Heroku-20 apps.

Which of my apps are affected?

To list all apps that are using the Heroku-20 stack, you can run the following Heroku CLI commands:

$ heroku plugins:install @heroku-cli/plugin-apps-table
$ heroku apps:table --filter="STACK=heroku-20"

You can also show apps by team:

$ heroku apps:table --filter="STACK=heroku-20" --team=my-team-name

Note: If you see end-of-life warnings in the Heroku dashboard but are unable to locate the apps, use the Heroku CLI commands above to locate them, as the CLI will show all apps, including those that might otherwise be hidden in the dashboard (such as the ephemeral apps created by Heroku CI, which will have -ci- in their app name).

What resources are available to assist with upgrading your apps?

Step-by-step documentation is available to assist you with upgrading.

Will Heroku-20 apps stop running? Will my app be shut down?

No. Existing Heroku-20 apps will not be shut down when the stack reaches its end-of-life, or when builds are disabled.

The apps will continue to run for the foreseeable future (unless impacted by issues unrelated to the stack version), and all non-build functionality will continue to work, such as:

  • Adjusting app settings
  • Adjusting app environment variables
  • Scaling app processes
  • Running one-off dynos
  • Creating/managing add-ons

However we highly encourage you to upgrade to a supported stack to maintain access to security updates, technical support, and the ability to perform builds (deploy new code).

Will apps on the Heroku-20 stack receive technical support?

After the Heroku-20 stack reaches end-of-life on April 30th, 2025, it will no longer be a supported stack, so apps using it will only receive limited technical assistance.

Will apps on the Heroku-20 stack continue to build?

From May 1st, 2025, no further builds will be allowed for Heroku-20 apps. This means it will not be possible to deploy changes to your application's source code after this date until the application's stack is upgraded.

Will it be possible to upgrade apps on the Heroku-20 stack after the builds deadline?

Yes, upgrading an existing Heroku-20 app's stack to a newer stack will still be possible even after May 1st, 2025.

Are you offering extensions to the Heroku-20 builds deadline?

No, the builds deadline is a hard deadline with no exceptions. This applies to all users including enterprise customers and internal Heroku/Salesforce teams.

For security and compliance reasons we must decommission the Heroku-20 instance of the build system when Ubuntu 20.04 reaches the end of it's life (and stops receiving security updates), since the build system itself has to run on the same Operating System version as the app being built. As such, we are unable to grant extensions to the Heroku-20 builds disablement deadline of May 1st, 2025, since after that date the Heroku-20 build system will have been decommissioned and so no longer exist.

I upgraded my app to a supported stack but my app no longer works as expected, can I rollback to Heroku-20?

Yes, you can rollback an app that has been upgraded to a newer stack - see this Dev Center article. Rolling back to a previous release that's based on Heroku-20 will still be possible even after Heroku-20 end-of-life and builds disablement, however at that point onwards, downgrading must be performed via the rollback feature and not heroku stack:set.

My app does not have any dynos, since it's only used to hold add-ons. What effect will upgrading stack have on the add-ons?

The stack is only used by dynos run on an app, so upgrading the app's stack will not affect the add-ons themselves. However, we recommended that the stack be upgraded regardless, in order to suppress the dashboard warning banners and email notifications. For apps where code has never been deployed, setting a new stack on the app will take immediate effect and not require a code deployment.

How are customers being notified about Heroku-20's end-of-life?

To raise awareness of Heroku-20's scheduled end-of-life, over the coming months we will notify customers via:

  • changelog entries
  • warnings in build logs
  • warnings when specifying Heroku-20 with the CLI commands heroku create and heroku stack:set
  • banners on the Heroku Dashboard
  • banners on the Heroku-20, Stack Packages and Upgrading to the Latest Stack Dev Center pages
  • automated emails triggered whenever a Heroku-20 app is built, sent to app owners/admins/collaborators (initially at most once per 90 days, increasing to monthly, weekly, then finally daily)
  • periodic intentional build errors requiring a retrigger to dismiss the end-of-life message

Ask on Stack Overflow

Engage with a community of passionate experts to get the answers you need

Ask on Stack Overflow

Heroku Support

Create a support ticket and our support experts will get back to you

Contact Heroku Support