Table of Contents [expand]
Last updated October 24, 2026
The Heroku-16 stack reached end-of-life on May 1st, 2021. Please upgrade to a newer stack as soon as possible. See the Heroku-16 End-Of-Life FAQ for more details.
This article describes the Heroku-16 stack, based on Ubuntu 16.04. What is a stack?
What’s new
We’ve made the following changes from the Cedar-14 stack to the Heroku-16 stack:
- Heroku-16 is much smaller, with a Docker image of 465 MB (vs 1.35 GB for Cedar-14).
- Improved support for compiling native Ruby and Python packages
- The JDK is installed by the Java/JVM buildpack. If you have an app that uses Java, but not the Java buildpack (e.g., jython or a Java Bridge), you’ll have to set the JVM buildpack on your app (instructions are listed below).
- The
HEROKU_namespace is reserved for config vars set by the Heroku platform in order to offer functionality. If you have createdHEROKU_config vars, we suggest you change them when upgrading to Heroku-16, in order to avoid config var conflicts.
Support period
Heroku-16 is based on Ubuntu 16.04, and so reached end-of-life on May 1st, 2021. See the Heroku-16 End-Of-Life FAQ for more details.
Using Heroku-16
It is no longer possible to create new Heroku-16 apps, or to switch an existing app’s stack to Heroku-16. Please use a supported stack instead.