This guide covers Erlang/OTP version requirements, Erlang version support policy, a RabbitMQ/Erlang compatibility matrix, version-specific notes and ways of provisioning recent Erlang/OTP releases.
RabbitMQ supports up to two most recent Erlang release series.
At the moment they are Erlang 26.x and 25.x.
Erlang 26 is supported starting with RabbitMQ 3.12.0.
The table below provides an Erlang compatibility matrix of currently supported RabbitMQ release series. For RabbitMQ releases that have reached end of life, see Unsupported Series Compatibility Matrix.
RabbitMQ version | Minimum required Erlang/OTP | Maximum supported Erlang/OTP | Notes |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
As a guideline, most recent minor and patch versions of each supported Erlang/OTP series are recommended.
Most recent versions can be obtained from a number of sources:
Standard Debian and Ubuntu repositories provide Erlang/OTP but it is heavily sliced and diced into dozens of packages. In addition, unless the system has backport repositories enabled, the versions tend to be quite old. See Debian and Ubuntu installation guide for more information on the essential packages, dependencies, and alternative apt repositories.
There are multiple RPM packages available for Erlang/OTP. The recommended option is the zero-dependency Erlang RPM from the RabbitMQ team. It closely follows the latest Erlang/OTP patch release schedule.
See CentOS, RHEL and Fedora installation guide for more information on the available options.
It is highly recommended that the same major version of Erlang is used across all cluster nodes (e.g. 25.x).
RabbitMQ will check for internal protocol versions of Erlang and its distributed libraries when a node joins a cluster, refusing to cluster if there's a potentially incompatible combination detected.
Outside of a reasonably long upgrade time window, it is recommended that all nodes use exactly the same version of Erlang.
HiPE support has been dropped in Erlang 22. RabbitMQ no longer supports HiPE precompilation.
If a sufficiently recent Erlang package is not available for a given operating system, Erlang/OTP can be built from source. This requires a build environment that satisfies the Erlang build dependencies, such as a modern OpenSSL version.
kerl makes building Erlang/OTP releases from source, including specific tags from GitHub, a much more pleasant experience.
Unsupported RabbitMQ Series | Minimum required Erlang/OTP | Maximum supported Erlang/OTP | Notes |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If you absolutely must use an older version of Erlang, RabbitMQ 3.6.14 is the newest version compatible with R16B03.
If you absolutely must use an older version of Erlang, RabbitMQ 3.5.8 is the newest version compatible with R13B03.
If you have questions about the contents of this guide or any other topic related to RabbitMQ, don't hesitate to ask them using GitHub Discussions or our community Discord server.
If you'd like to contribute an improvement to the site, its source is available on GitHub. Simply fork the repository and submit a pull request. Thank you!