Skip to main content
Version: Next

Erlang Version Requirements

Introduction

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.

Supported Erlang Version Policy

RabbitMQ supports up to two most recent Erlang release series.

At the moment they are Erlang 26.x and 25.x.

Erlang 27 Support

warning

Erlang 27 (released in May 2024) is currently not supported by any available RabbitMQ version. There are significant performance regressions when running RabbitMQ on Erlang 27.

Erlang 26 Support

Erlang 26 is supported starting with RabbitMQ 3.12.0.

RabbitMQ and Erlang/OTP Compatibility Matrix

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 versionMinimum required Erlang/OTPMaximum supported Erlang/OTPNotes
  • 3.13.7
  • 3.13.6
  • 3.13.5
  • 3.13.4
  • 3.13.3
  • 3.13.2
  • 3.13.1
  • 3.13.0
  • 26.0
  • 26.2.x
  • 3.12.13
  • 3.12.12
  • 3.12.11
  • 3.12.10
  • 25.0
  • 26.2.x
  • 3.12.9
  • 3.12.8
  • 3.12.7
  • 3.12.6
  • 3.12.5
  • 25.0
  • 26.1.x
  • 3.12.4
  • 3.12.3
  • 3.12.2
  • 3.12.1
  • 3.12.0
  • 25.0
  • 26.0.x
  • The 3.12 release series is compatible with Erlang 26.

  • OpenSSL 3 support in Erlang is considered to be mature enough for production.

  • 3.11.28
  • 3.11.27
  • 3.11.26
  • 3.11.25
  • 3.11.24
  • 3.11.23
  • 3.11.22
  • 3.11.21
  • 3.11.20
  • 3.11.19
  • 3.11.18
  • 3.11.17
  • 3.11.16
  • 3.11.15
  • 3.11.14
  • 3.11.13
  • 3.11.12
  • 3.11.11
  • 3.11.10
  • 3.11.9
  • 3.11.8
  • 3.11.7
  • 3.11.6
  • 3.11.5
  • 3.11.4
  • 3.11.3
  • 3.11.2
  • 3.11.1
  • 3.11.0
  • 25.0
  • 25.3.x
  • Erlang 26 is supported starting with RabbitMQ 3.12.0.

  • As of Erlang 25.1, OpenSSL 3.0 support in Erlang is considered to be mature enough for production.

  • Erlang 25 before 25.0.2 is affected by CVE-2022-37026, a CVE with critical severity (CVSS 3.x Base Score: 9.8)

As a guideline, most recent minor and patch versions of each supported Erlang/OTP series are recommended.

Provisioning Latest Erlang Releases

Most recent versions can be obtained from a number of sources:

Installing Erlang/OTP on Debian or 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 RHEL, CentOS and Fedora

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.

Erlang Versions in Clusters

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.

Building Erlang from Source

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.

Older RabbitMQ and Erlang Releases

Unsupported RabbitMQ Series

Unsupported RabbitMQ SeriesMinimum required Erlang/OTPMaximum supported Erlang/OTPNotes
  • 3.10.25
  • 3.10.24
  • 3.10.23
  • 3.10.22
  • 3.10.21
  • 3.10.20
  • 3.10.19
  • 24.3.4.8
  • 25.3.x
  • 24.3 is the only maintained (updated) series of Erlang 24.

  • As of Erlang 25.1, OpenSSL 3.0 support in Erlang is considered to be mature enough to consider for production.

  • Erlang 25 before 25.0.2 and 24 before 24.3.4.2 are affected by CVE-2022-37026, a CVE with critical severity (CVSS 3.x Base Score: 9.8)

  • 3.10.18
  • 3.10.17
  • 3.10.16
  • 3.10.14
  • 24.3
  • 25.2
  • 24.3 is the only maintained (updated) series of Erlang 24.

  • As of Erlang 25.1, OpenSSL 3.0 support in Erlang is considered to be mature enough to consider for production.

  • Erlang 25 before 25.0.2 and 24 before 24.3.4.2 are affected by CVE-2022-37026, a CVE with critical severity (CVSS 3.x Base Score: 9.8)

  • 3.10.13
  • 3.10.12
  • 3.10.11
  • 3.10.10
  • 3.10.9
  • 3.10.8
  • 24.2
  • 25.2
  • As of Erlang 25.1, OpenSSL 3.0 support in Erlang is considered to be mature enough to consider for production.

  • Erlang 25 before 25.0.2 and 24 before 24.3.4.2 are affected by CVE-2022-37026, a CVE with critical severity (CVSS 3.x Base Score: 9.8)

  • 3.10.7
  • 3.10.6
  • 3.10.5
  • 23.2
  • 25.2
  • Erlang 25 is the recommended series.

  • Erlang 25 before 25.0.2 and 24 before 24.3.4.2 are affected by CVE-2022-37026, a CVE with critical severity (CVSS 3.x Base Score: 9.8)

  • Erlang 23 support was discontinued on July 31st, 2022.

  • 3.10.4
  • 3.10.2
  • 3.10.1
  • 3.10.0
  • 23.2
  • 24.3
  • Erlang 24.3 is the recommended series.

  • Erlang 23 support was discontinued on July 31st, 2022.

  • 3.9.29
  • 3.9.28
  • 24.3.4.2
  • 25.2
  • 24.3 is the only maintained (updated) series of Erlang 24.

  • As of Erlang 25.1, OpenSSL 3.0 support in Erlang is considered to be mature enough to consider for production.

  • Erlang 25 before 25.0.2 and 24 before 24.3.4.2 are affected by CVE-2022-37026, a CVE with critical severity (CVSS 3.x Base Score: 9.8)

  • 3.9.27
  • 3.9.26
  • 3.9.25
  • 3.9.24
  • 3.9.23
  • 3.9.22
  • 24.2
  • 24.3
  • Erlang 24 before 24.3.4.2 is affected by CVE-2022-37026, a CVE with critical severity (CVSS 3.x Base Score: 9.8)

  • Erlang 23 support was discontinued on July 31st, 2022.

  • 3.9.21
  • 3.9.20
  • 3.9.19
  • 3.9.18
  • 3.9.17
  • 3.9.16
  • 3.9.15
  • 23.3
  • 24.3
  • Erlang 24.3 introduces LDAP client changes that are breaking for projects compiled on earlier releases (including RabbitMQ). RabbitMQ 3.9.15 is the first release to support Erlang 24.3.

  • Erlang 23 support was discontinued on July 31st, 2022.

  • 3.9.14
  • 3.9.13
  • 3.9.12
  • 3.9.11
  • 3.9.10
  • 3.9.9
  • 3.9.8
  • 3.9.7
  • 3.9.6
  • 3.9.5
  • 3.9.4
  • 3.9.3
  • 3.9.2
  • 3.9.1
  • 3.9.0
  • 23.2
  • 24.2
  • 3.8.35
  • 3.8.34
  • 3.8.33
  • 3.8.32
  • 3.8.31
  • 3.8.30
  • 3.8.29
  • 23.2
  • 24.3
  • RabbitMQ 3.8 was released in October 2019, and reached end of life on July 31st, 2022, we strongly discourage its use
  • Erlang 24.3 introduces LDAP client changes that are breaking for projects compiled on earlier releases (including RabbitMQ). RabbitMQ 3.8.29 is the first release in the 3.8.x-series to support Erlang 24.3.

  • 3.8.28
  • 3.8.27
  • 3.8.26
  • 3.8.25
  • 3.8.24
  • 3.8.23
  • 3.8.22
  • 3.8.21
  • 3.8.20
  • 3.8.19
  • 3.8.18
  • 3.8.17
  • 3.8.16
  • 23.2
  • 24.2
  • RabbitMQ 3.8 was released in October 2019, and reached end of life on July 31st, 2022, we strongly discourage its use
  • 3.8.15
  • 3.8.14
  • 3.8.13
  • 3.8.12
  • 3.8.11
  • 3.8.10
  • 3.8.9
  • 22.3
  • 23.x
  • RabbitMQ 3.8 was released in October 2019, and reached end of life on July 31st, 2022, we strongly discourage its use
  • 3.8.8
  • 3.8.7
  • 3.8.6
  • 3.8.5
  • 3.8.4
  • 21.3
  • 23.x
  • RabbitMQ 3.8 was released in October 2019, and reached end of life on July 31st, 2022, we strongly discourage its use
  • 3.8.3
  • 3.8.2
  • 3.8.1
  • 3.8.0
  • 21.3
  • 22.x
  • RabbitMQ 3.8 was released in October 2019, and reached end of life on July 31st, 2022, we strongly discourage its use
  • 3.7.27
  • 3.7.26
  • 3.7.25
  • 3.7.24
  • 3.7.23
  • 3.7.22
  • 3.7.21
  • 3.7.20
  • 3.7.19
  • 21.3
  • 22.x
  • RabbitMQ 3.7 was released on 2017-11-28, and reached end of life on 2020-09-30, we strongly discourage its use
  • 3.7.18
  • 3.7.17
  • 3.7.16
  • 3.7.15
  • 20.3
  • 22.x
  • RabbitMQ 3.7 was released on 2017-11-28, and reached end of life on 2020-09-30, we strongly discourage its use
  • 3.7.14
  • 3.7.13
  • 3.7.12
  • 3.7.11
  • 20.3
  • 21.x
  • RabbitMQ 3.7 was released on 2017-11-28, and reached end of life on 2020-09-30, we strongly discourage its use
  • 3.7.10
  • 3.7.9
  • 3.7.8
  • 3.7.7
  • 19.3
  • 21.x
  • RabbitMQ 3.7 was released on 2017-11-28, and reached end of life on 2020-09-30, we strongly discourage its use
  • 3.7.6
  • 3.7.5
  • 3.7.4
  • 3.7.3
  • 3.7.2
  • 3.7.1
  • 3.7.0
  • 19.3
  • 20.x
  • RabbitMQ 3.7 was released on 2017-11-28, and reached end of life on 2020-09-30, we strongly discourage its use
  • 3.6.16
  • 3.6.15
  • 19.3
  • 20.3.x
  • RabbitMQ 3.6 was released on 2015-12-22, and reached end of life on 2018-05-31, we strongly discourage its use
  • 3.6.14
  • 3.6.13
  • 3.6.12
  • 3.6.11
  • R16B03
  • 20.1.x
  • RabbitMQ 3.6 was released on 2015-12-22, and reached end of life on 2018-05-31, we strongly discourage its use
  • 3.6.10
  • 3.6.9
  • 3.6.8
  • 3.6.7
  • 3.6.6
  • 3.6.5
  • 3.6.4
  • R16B03
  • 19.3.x
  • RabbitMQ 3.6 was released on 2015-12-22, and reached end of life on 2018-05-31, we strongly discourage its use
  • 3.6.3
  • 3.6.2
  • 3.6.1
  • 3.6.0
  • R16B03
  • 18.3.x
  • RabbitMQ 3.6 was released on 2015-12-22, and reached end of life on 2018-05-31, we strongly discourage its use
  • 3.5.x
  • R14B04
  • 17.5.x
  • RabbitMQ 3.5 was released on 2015-03-11, and reached end of life on 2016-10-31, we strongly discourage its use
  • 3.4.x
  • R13B03
  • 16B03
  • RabbitMQ 3.4 was released 2014-10-21, and reached end of life 2015-10-31, we strongly discourage its use

Last Version to Support R16B03

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

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.