Erlang Versions Required and Supported by RabbitMQ

Minimum Required Version

The minimum version of Erlang required to run the RabbitMQ server 3.6.x is R16B03. The most recent Erlang/OTP release series supported by RabbitMQ (as of 3.6.11) is 20.x.

RabbitMQ and Erlang/OTP Version Compatibility Table

As a rule of thumb, most recent stable (GA) versions of Erlang/OTP 19.3.x or 20.x are recommended for running RabbitMQ. Most recent versions can be obtained from

Below is a RabbitMQ and Erlang/OTP compatibility matrix.

RabbitMQ Release Series Supported Erlang/OTP Series Notes
3.6.x starting with 3.6.11 R16B03 through 20.x Erlang/OTP 20 is supported starting with 3.6.11; see below if you use TLS.
3.6.x R16B03 through 19.3.x 19.x is supported starting with 3.6.4; Erlang/OTP 20 is NOT supported due to breaking changes; see below if you use TLS.
3.5.x R14B04 through 17.5 See below if you use TLS
3.4.x R13B03 through 16B03-1 See below if you use TLS

Installing Erlang/OTP on Debian and Ubuntu

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.

Installing Erlang/OTP on CentOS, RHEL, Fedora

There are multiple RPM packages for Erlang/OTP, including a zero-dependency Erlang RPM from the RabbitMQ team. See CentOS, RHEL and Fedora installation guide for more information on the available options.

Configuration- and Plugin-specific Erlang Version Requirements

Certain RabbitMQ configurations require more recent versions:

If you want to:Minimum versionNotes
build or run RabbitMQ server and most plugins R16B03 19.3.x and 20.x are recommended
use TLS reliably 17.0 Covers most common signature algorithms and can honor server ciphers order. 19.3.6 or later version are recommended.
use rabbitmq_delayed_message_exchange 18.0

Erlang Versions in Clusters

RabbitMQ requires that the same major and minor version of Erlang is used across all cluster nodes (e.g. 19.2.x). RabbitMQ will check for 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.

It is highly recommended that all nodes use exactly the same version of Erlang.

Building from Source

If a sufficiently recent Erlang package is not available for your system then you will need to build Erlang from source. This requires a build environment that satisfies the Erlang build dependencies, such as OpenSSL. kerl is the recommended way of doing that.

kerl makes building Erlang/OTP releases from source, including specific tags from GitHub, a much more pleasant experience.

Older Erlang Versions

Last Version to Support R13B03

If you absolutely must use an older version of Erlang, RabbitMQ 3.5.8 is the newest version compatible with R13B03.