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.
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.
Output:
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.
The output is long. To extract just the version lines:
Typical output:
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:
Output:
You can also check the Erlang version specifically:
Output:
Method 4: Management UI (Web Interface)
If the rabbitmq_management plugin is enabled, the web dashboard displays the version.
- Open your browser and navigate to
http://your-server:15672/. - Log in with your credentials (default is
guest/gueston localhost). - 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:
Output:
For scripted checks, parse the JSON directly:
Method 5: Docker and Container Environments
In Docker, you cannot run rabbitmqctl on the host. Execute it inside the container:
For Docker Compose:
You can also check the image tag, though this shows the image version, not necessarily the running server version if the image was rebuilt:
Kubernetes
Method 6: Package Manager Queries
If RabbitMQ was installed via a system package manager, you can query the installed package version:
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
| Method | Requires running server | Shows Erlang version | Scriptable | Available since |
rabbitmqctl version | Yes | No | Yes | 3.8.6+ |
rabbitmqctl status | Yes | Yes | Yes (parse output) | All versions |
rabbitmq-diagnostics server_version | Yes | No (separate command) | Yes | 3.8+ |
| Management UI | Yes + plugin enabled | Yes | No | 3.x with plugin |
Management API (/api/overview) | Yes + plugin enabled | Yes | Yes (JSON) | 3.x with plugin |
| Package manager query | No | No | Yes | N/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 version | Minimum Erlang | Maximum Erlang | Notes |
| 3.13.x | 26.0 | 26.x | Current release series |
| 3.12.x | 25.0 | 26.x | Previous release |
| 3.11.x | 25.0 | 25.x | End of life |
| 3.10.x | 24.3 | 25.x | End of life |
Check the official compatibility matrix at rabbitmq.com/docs/which-erlang for the authoritative, up-to-date table.
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:
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
- RabbitMQ virtual host error when starting service
- RabbitMQ Visibility Timeout
- RabbitMQ vs Socket.io?
- RabbitMQ vs Web API + SignalR
- RabbitMQ Wait for a message with a timeout
- RabbitMQ wait for multiple queues to finish
- RabbitMQ What are Ready and Unacked types of messages?
- RabbitMQ What Does Celery Offer That Pika Doesn't?

System Design Fundamentals
Build a strong foundation in designing scalable, reliable distributed systems.
View the courseTrack 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.