RabbitMQ
Version Verification
Messaging Systems
Server Administration
System Updates

RabbitMQ Verify version of rabbitmq

System Design practice on Codemia

Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.

Practice system design

The fastest way to check your RabbitMQ version is rabbitmqctl version, which prints just the version number (for example, 3.13.2). For more detail including the Erlang/OTP version, use rabbitmqctl status. If the management plugin is enabled, the version also appears at the top of the web UI on port 15672. In Docker environments, prefix these commands with docker exec <container>.

Method 1: rabbitmqctl version

This is the most direct command. It prints the RabbitMQ server version and exits.

bash
rabbitmqctl version

Output:

 
3.13.2

This command is available in RabbitMQ 3.8.6 and later. On older versions, it may not exist, in which case use rabbitmqctl status.

Method 2: rabbitmqctl status

The status command provides comprehensive server information including the RabbitMQ version, Erlang/OTP version, uptime, listeners, and resource usage.

bash
rabbitmqctl status

The output is long. To extract just the version lines:

bash
rabbitmqctl status | grep -E "RabbitMQ|Erlang"

Typical output:

 
RabbitMQ version: 3.13.2
Erlang version: 26.2.3

The full status output is useful when filing bug reports or checking compatibility because it includes the exact Erlang/OTP release.

Method 3: rabbitmq-diagnostics server_version

The rabbitmq-diagnostics CLI (available since RabbitMQ 3.8) provides targeted diagnostic commands:

bash
rabbitmq-diagnostics server_version

Output:

 
3.13.2

You can also check the Erlang version specifically:

bash
rabbitmq-diagnostics erlang_version

Output:

 
26.2.3

Method 4: Management UI (Web Interface)

If the rabbitmq_management plugin is enabled, the web dashboard displays the version.

  1. Open your browser and navigate to http://your-server:15672/.
  2. Log in with your credentials (default is guest / guest on localhost).
  3. The overview page header shows the version, for example: "RabbitMQ 3.13.2, Erlang 26.2.3".

Checking via the Management HTTP API

The same information is available via the REST API:

bash
curl -s -u guest:guest http://localhost:15672/api/overview | python3 -m json.tool | grep rabbitmq_version

Output:

json
"rabbitmq_version": "3.13.2",

For scripted checks, parse the JSON directly:

bash
1curl -s -u guest:guest http://localhost:15672/api/overview | python3 -c "
2import sys, json
3data = json.load(sys.stdin)
4print(f\"RabbitMQ: {data['rabbitmq_version']}\")
5print(f\"Erlang: {data['erlang_version']}\")
6"

Method 5: Docker and Container Environments

In Docker, you cannot run rabbitmqctl on the host. Execute it inside the container:

bash
1# Using container name
2docker exec rabbitmq rabbitmqctl version
3
4# Using container ID
5docker exec abc123def456 rabbitmqctl version
6
7# If you don't know the container name
8docker ps --filter "ancestor=rabbitmq" --format "{{.Names}}"

For Docker Compose:

bash
docker compose exec rabbitmq rabbitmqctl version

You can also check the image tag, though this shows the image version, not necessarily the running server version if the image was rebuilt:

bash
docker inspect rabbitmq --format '{{.Config.Image}}'

Kubernetes

bash
1kubectl exec -it rabbitmq-0 -- rabbitmqctl version
2
3# Or for a specific namespace
4kubectl exec -it rabbitmq-0 -n messaging -- rabbitmqctl version

Method 6: Package Manager Queries

If RabbitMQ was installed via a system package manager, you can query the installed package version:

bash
1# Debian/Ubuntu
2dpkg -l rabbitmq-server
3
4# RHEL/CentOS/Fedora
5rpm -q rabbitmq-server
6
7# macOS with Homebrew
8brew info rabbitmq
9
10# Windows (PowerShell)
11Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*" |
12  Where-Object DisplayName -like "*RabbitMQ*" |
13  Select-Object DisplayName, DisplayVersion

Note that the package version may differ slightly from the running server version if you upgraded the package but have not restarted the service.

Comparison of Version Check Methods

MethodRequires running serverShows Erlang versionScriptableAvailable since
rabbitmqctl versionYesNoYes3.8.6+
rabbitmqctl statusYesYesYes (parse output)All versions
rabbitmq-diagnostics server_versionYesNo (separate command)Yes3.8+
Management UIYes + plugin enabledYesNo3.x with plugin
Management API (/api/overview)Yes + plugin enabledYesYes (JSON)3.x with plugin
Package manager queryNoNoYesN/A

RabbitMQ and Erlang Compatibility

Each RabbitMQ release supports a specific range of Erlang/OTP versions. Running an unsupported combination can cause crashes, silent data corruption, or performance degradation. After checking the RabbitMQ version, always verify Erlang compatibility.

RabbitMQ versionMinimum ErlangMaximum ErlangNotes
3.13.x26.026.xCurrent release series
3.12.x25.026.xPrevious release
3.11.x25.025.xEnd of life
3.10.x24.325.xEnd of life

Check the official compatibility matrix at rabbitmq.com/docs/which-erlang for the authoritative, up-to-date table.

bash
# Verify both versions in one command
rabbitmqctl status | grep -E "(RabbitMQ|Erlang) version"

Common Pitfalls

Confusing the package version with the running server version. If you upgraded the RabbitMQ package but did not restart the service, dpkg -l shows the new version while rabbitmqctl version shows the old one. Always check the running server, not just the installed package.

Using rabbitmqctl version on versions older than 3.8.6. The version subcommand did not exist before 3.8.6. On older installations you get an error like "Error: could not recognise command." Use rabbitmqctl status instead.

Forgetting that guest/guest only works on localhost. The default credentials are restricted to loopback connections. If you try curl -u guest:guest http://remote-server:15672/api/overview, you get a 401 error. Either create a new admin user or modify the loopback_users configuration.

Not checking Erlang compatibility after an upgrade. RabbitMQ 3.12+ requires Erlang 25+. Upgrading RabbitMQ without upgrading Erlang first causes startup failures. Always check the compatibility matrix before upgrading either component.

Assuming the management plugin is enabled by default. The rabbitmq_management plugin is not enabled in a fresh installation. If port 15672 is not listening, enable it first:

bash
rabbitmq-plugins enable rabbitmq_management

Summary

The quickest version check is rabbitmqctl version for RabbitMQ 3.8.6+ or rabbitmqctl status for older releases. For scripted monitoring, the management API endpoint /api/overview returns both the RabbitMQ and Erlang versions as JSON. In containerized environments, run these commands via docker exec or kubectl exec. Always verify that the running server version (not the package version) is compatible with your installed Erlang/OTP release by consulting the official compatibility matrix.


Related reading
Course
Beginner
27 lessons
10 hours
System Design Fundamentals

Build a strong foundation in designing scalable, reliable distributed systems.

View the course
Track what you have practised

A free account saves your progress, solutions and study plan across every problem on Codemia.

System Design practice on Codemia

Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.

Practice system design

All Rights Reserved.