Heroku-20 Stack Reached End of Life: What It Means and Your Options
The Heroku-20 stack reached end of life on April 30, 2025. Here's what this means for your applications, how to upgrade to newer stacks, and when to consider switching platforms entirely.
On April 30, 2025, Heroku's Heroku-20 stack officially reached end of life. Starting May 1, 2025, you can no longer deploy code changes to apps still running on Heroku-20. While your existing apps will continue to run, you're now locked out of pushing updates, bug fixes, or new features until you migrate to a newer stack.
This isn't just a technical footnote—it's a forcing function. If your app is on Heroku-20, you need to make a decision now: upgrade to Heroku-22 or Heroku-24, or use this moment to reconsider whether Heroku is still the right platform for your needs.
This article walks through what happened, who's affected, and the two paths forward: upgrading within Heroku or migrating to a modern alternative.
What Happened
Heroku stacks are the underlying operating system images that run your applications. Heroku-20 was based on Ubuntu 20.04 LTS and was deprecated in November 2023, giving developers 18 months to migrate before the April 30, 2025 end-of-life date.
As of May 1, 2025, builds are no longer allowed for Heroku-20 apps. This means you cannot push code changes, update dependencies, or deploy fixes. All other functionality continues to work—your apps will keep running, environment variables still work, and logs are still available. But the moment you need to deploy a change, you're blocked.
This follows a pattern: Heroku-18 reached EOL in 2023, and Heroku-22 (based on Ubuntu 22.04) is scheduled for end of life in April 2027. The current recommended target is Heroku-24, which is based on Ubuntu 24.04.
Who's Affected
If you created your Heroku app before April 2022 and haven't explicitly upgraded your stack, you're likely on Heroku-20. You can check by running heroku stack in your app directory or viewing the stack in your app settings on the Heroku dashboard.
The impact is immediate for teams that rely on continuous deployment. A security patch, a dependency update, or a customer-requested feature—all blocked until you migrate. For low-maintenance apps that rarely change, you have breathing room. But the clock is ticking regardless.
Beyond Heroku-20, this is a broader inflection point. Heroku announced in early 2026 that it's transitioning to a 'sustaining engineering model' and no longer offering new Enterprise contracts. For teams evaluating long-term platform strategy, this EOL deadline is a natural moment to reassess.
Option 1: Upgrade to Heroku-22 or Heroku-24
If Heroku still meets your needs, upgrading your stack is the most straightforward path. Here's what you need to know.
Heroku-22
Based on Ubuntu 22.04. Supported through April 2027. A stable, well-tested option if you need more time before the next migration cycle.
Migration Process
Upgrading your stack requires a rebuild. The process is similar to a standard deploy: update your stack setting, test locally if possible, then push your changes. Heroku's official documentation recommends always moving to the latest available stack and reviewing breaking changes between your current and target versions.
For Ruby apps, you may need to upgrade your Ruby version before migrating. Heroku-24 has specific quirks: Git is only available at build time, not runtime, and the older Chrome buildpack is incompatible—you'll need to switch to the Chrome for Testing buildpack if you rely on headless browser automation.
The upgrade process itself is low-risk for most apps, but you'll want to test in a staging environment before touching production. Most compatibility issues surface during the build phase, not at runtime.
Option 2: Migrate to a Modern Alternative
If you're questioning Heroku's long-term viability or pricing, this EOL deadline is a natural moment to switch. Here are the most credible alternatives.
When to Stay vs When to Switch
Upgrade to Heroku-22 or Heroku-24 if your app is stable, you're happy with Heroku's pricing, and the migration cost is low. If you're already paying for Heroku and the platform works for you, there's no reason to introduce risk by switching.
Consider migrating to an alternative if you're questioning Heroku's pricing (especially post-free-tier), concerned about the long-term roadmap given the shift to sustaining engineering, or if you're already evaluating platforms for new projects. The migration cost is real—DNS changes, environment variable migration, testing—but if you're already skeptical of Heroku, this EOL deadline is your forcing function.
The wrong move is inaction. Staying on Heroku-20 past May 1 means you can't deploy. Set a deadline, test your migration path (upgrade or switch), and execute before the next emergency fix is needed.
Key Migration Timelines
Important dates for Heroku stack migrations
Apr 30
Heroku-20 EOL Date
Sep 30
Legacy Router EOL
Apr 2027
Heroku-22 EOL Date
Need Help Migrating?
Whether you're upgrading stacks or switching platforms entirely, we can help you plan and execute a zero-downtime migration. Book a call to discuss your options.
Continue reading
Related resources
Keep moving through the same operating model with a few nearby articles from the same topic cluster.
Salesforce Reporting for Staffing Firms: Pipeline, Margin, and Recruiter Productivity
Salesforce reports in staffing firms are often wrong because the source objects, field conventions, and report types were built for a generic sales org. Here's how to fix the three layers that determine whether your numbers are trustworthy.
Applied
March 1, 2026
Staffing CRM Data Quality and Technical Debt: A Practical Playbook
Bad staffing CRM data is rarely just a cleanup problem. This guide covers duplicates, recruiter adoption friction, ghost data, brittle automations, and the remediation sequence that turns a messy staffing Salesforce org into something operators can trust again.
Advanced
March 1, 2026
Scaling Salesforce for High-Volume Staffing and MSP Operations
When staffing volume grows, Salesforce stalls in predictable ways: automation fires synchronously on bulk imports, recruiter pages wait for backend processing, and governor limits surface mid-transaction. Here is how to architect around it.
Advanced
March 1, 2026
Resource updates
Get notified when new guides go live.
Practical notes on Salesforce, staffing workflows, and operational cleanup. No newsletter bloat.

