Free guide · checked 3 October 2026
Heroku-22 warning? Check your app before changing anything.
From 1 May 2027, Heroku will not build new code on Heroku-22. Your existing app is not shut down by this deadline. You can check whether you're affected in the Heroku Dashboard without touching the code.
From 1 November 2026 Heroku deliberately fails some builds to warn you. Heroku's notice. No password, code or access needs to be sent to anyone to do this check.
First: check the Dashboard
- Sign in to the Heroku Dashboard. The app list shows a stack for each app. Find the app named in the email or failed build. If it says
heroku-22, this guide applies. If it says something else, don't assume Heroku-22 caused the failure. - Did a build fail? Open that app's Activity tab and the failed build log. If it says the stack is deprecated, the deliberate failure may explain it. If it reports another error, don't keep retrying: ask the person who deploys the app to investigate.
Can't find the app, can't sign in, or don't know which version of Ruby or Rails it uses? Stop here. You don't need to guess, change a setting or send anyone a password. Ask whoever built or last deployed it for the app name, access to the code repository and the most recent build log. Copy the short note below.
Heroku documents the intentional failure as a “deprecation error” at the start of the build. It has not published the exact Heroku-22 message. We'll add the actual wording, dated, once an example is available; don't confuse this with a failure caused by your code.
What happens if the app is on Heroku-22?
| Date | Effect on new-code builds |
|---|---|
| From 1 Nov 2026 | The first build for each app in each 30-day period fails deliberately. Retriggering that build gets past this particular warning; another error could still stop the deploy. |
| From 1 Feb 2027 | The first build in each 7-day period fails deliberately. |
| From 1 Apr 2027 | The first build in each 24-hour period fails deliberately. |
| 30 Apr 2027 | Heroku-22 reaches end of life. It no longer receives operating-system security updates; Heroku gives limited support. |
| From 1 May 2027 | New builds on Heroku-22 are blocked, with no extensions. You cannot deploy changed code until you move to a newer stack. Existing apps are not shut down by the deadline. |
Heroku says other non-build operations, such as restarting and scaling, remain available. That's not a promise that every part of an app or its add-ons will keep working indefinitely. You can still upgrade after 1 May, but you won't be able to ship a code fix while the app remains on Heroku-22. Heroku's full timetable.
What might fixing it involve?
A stack switch may be enough. Heroku-24 is a newer operating-system image, supported through April 2029. Heroku lists the same available Ruby versions on Heroku-22 and Heroku-24. The stack policy alone therefore does not force a Ruby or Rails upgrade. It does not follow that your app will build or run unchanged: operating-system libraries, native gems, asset builds and buildpacks may need work. A developer should test a separate app first. For a simple app this might take hours of developer time; that is a planning guess, not a quote.
Some apps also need Ruby or Rails work. “Available” is not the same as “supported”: Heroku still makes Ruby 3.1 and 3.2 installable on Heroku-24, but they no longer get Ruby security fixes. An older Rails version may likewise be unsupported, even though the app builds. Updating either can turn a small stack change into days or weeks of work on an old app. Heroku-26 is supported through April 2031, but does not list Ruby 3.1; choosing it on 3.1 requires a Ruby change. Heroku reports no known breaking operating-system changes from Heroku-24 to Heroku-26, not a guarantee that every app will work. Ruby versions on each stack; Rails support.
Waiting is an option. Until 30 April 2027, the deliberate build failure can be retried. From 1 May, the site remains up but code changes cannot be deployed on Heroku-22; that includes an urgent fix. The old operating system will no longer receive security updates. Moving later is possible, but the work then competes with whatever urgent change you needed. If the person who maintains the app is available, ask them to plan a move before the deadline.
If you don't have a developer, send this first
Start with the person who built or last changed the app. If you don't know who that is, look for the person who receives Heroku's emails, your code-host invitation or past invoices. If nobody is available, a developer or agency can assess the work; ask for a written scope and checks before giving anyone code or access. You do not need to know Ruby or Rails versions to send this note.
Heroku says our app may be on the Heroku-22 stack, which won't accept new builds after 30 April 2027. Could you check which app this is, who holds its current code, and whether a tested move to Heroku-24 or Heroku-26 needs changes to Ruby, Rails, buildpacks or anything else? Please tell me: - Which stack is currently live, and which Ruby and Rails versions are in the deployed release (not just an old code copy)? - What must be tested on a separate app before touching the live one? - What is the safe deployment and rollback plan, including any database changes, release tasks, payments, email or other external effects? - Rough effort and cost, and what I'll need to check myself afterwards. Please don't switch the live app until we've agreed the test plan.
For the developer checking it
- If you maintain the code, our read-only Heroku-22 local preflight (Node.js 18+) checks up to five named files for locked Ruby, Rails and Bundler versions, a declared Node engine and known Heroku-24 review points. It makes no network calls, changes no files and cannot test a live app or guarantee a build.
- Confirm the live stack with
heroku stack -a APP, and the Ruby version in the active release (a lockfile alone may describe another revision). Check the deployed Rails version and the repository revision. List buildpacks withheroku buildpacks -a APP; review any pinned versions for compatible updates, rather than unpinning blindly. - Test on a separate app or review app before switching production. Copy only the add-ons and safe substitute settings needed to exercise the app; do not copy production data or secrets without a plan and authority. Heroku's stack upgrade guide covers test apps,
app.jsonfor future review apps,heroku stack:set heroku-24 -a APP, the next build, and rollback. - Check the Heroku-24 upgrade notes: the old Chrome buildpack is incompatible; Git and system Python are now build-time only; locales and legacy time zones changed; OS package names, native libraries and PDF binaries may need attention. Check
package.jsonif Node builds assets: an unpinned Node version now defaults to 24 (Node support). Build success does not prove the site's pages, PDF generation or integrations work. - Identify the last release on the old stack before switching. If rollback is necessary, use that release, not simply “the previous release”. Release phase runs again on rollback; a rollback does not automatically undo database migrations or external side effects. Plan and test their reversal separately. After 1 May, Heroku permits rollback to an old-stack release but won't let you build new code on it.
Need someone to move it?
If you have a developer, start with the note above. If not, read our £495 Heroku-24 offer for eligible Rails apps. It explains what we'll test, how production access works and where a separate quote is needed. No code or credentials needed for a first email.
Sources and corrections
All checked 3 October 2026. This is independent guidance; Synthetic Industry is not affiliated with Heroku or Salesforce. For a correction, email hello@syntheticindustry.ai. We will date any material correction.