RabbitMQ has Nodedown Error
WindowsErlangRabbitmqWindows Problem Overview
On a Windows 7 Enterprise machine, I made a fresh install of Erlang 17.4 and RabbitMQ 3.4.3 x64. The installation was successful and uneventful.
I have not yet tried to create my first queue or exchange, but I already see trouble. This problem is similar to another SO post, but that other post appears to involve clustering, which I don't have. Furthermore, that other poster can circumvent his issue by restarting the RabbitMQ service; that approach does not work for me.
My "nodedown" problem is evident at the RabbitMQ command prompt:
>C:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.4.3\sbin>rabbitmqctl status
Status of node rabbit@TPAJ05421843 ...
Error: unable to connect to node rabbit@TPAJ05421843: nodedown
>DIAGNOSTICS >===========
>attempted to contact: [rabbit@TPAJ05421843]
>rabbit@TPAJ05421843:
- connected to epmd (port 4369) on TPAJ05421843
- epmd reports: node 'rabbit' not running at all
other nodes on TPAJ05421843: ['RabbitMQ'] - suggestion: start the node
>current node details:
- node name: 'rabbitmqctl-19884@TPAJ05421843'
- home dir: H:\
- cookie hash: PD4QQCYrf0TME9vIko3Xuw==
Based on the above, I chose to check the status of the node explicitly named 'RabbitMQ'. I get this:
>C:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.4.3\sbin>rabbitmqctl -n RabbitMQ status
Status of node 'RabbitMQ@TPAJ05421843' ...
Error: unable to connect to node 'RabbitMQ@TPAJ05421843': nodedown
>DIAGNOSTICS >===========
>attempted to contact: ['RabbitMQ@TPAJ05421843']
>RabbitMQ@TPAJ05421843:
- connected to epmd (port 4369) on TPAJ05421843
- epmd reports node 'RabbitMQ' running on port 59301
- TCP connection succeeded but Erlang distribution failed
- suggestion: hostname mismatch?
- suggestion: is the cookie set correctly?
>current node details:
- node name: 'rabbitmqctl-23076@TPAJ05421843'
- home dir: H:\
- cookie hash: PD4QQCYrf0TME9vIko3Xuw==
Ok, this is barely better since at least it acknowledges 'RabbitMQ' running on port 59301. But what the heck could it mean that "Erlang distribution failed"?
When I try to research this topic, I found articles saying "be sure you have matched cookies." Based on that I found this article, which claims the "cookie mismatch" does not pertain to me, because I have not created (nor intend to create) a RabbitMQ cluster.
What should I do?
Windows Solutions
Solution 1 - Windows
I had this same problem today. There were no cookie or firewall problems and windows reported that the service was running successfully. This is what finally fixed it:
- Run RabbitMQ sbin command prompt as administrator.
- Run "rabbitmq-service remove"
- Run "rabbitmq-service install"
For some reason the service set up by the installer did not configure several registry entries. Running this set them correctly and allowed the service to run.
One thing I noticed was that before I did this, there was no description of the service in the Windows Services view. After installing with the rabbitmq-service command, the description was visible. This might be a quick indicator if you are having the same problem.
Solution 2 - Windows
As @eddyP commented, I had two different Erlang cookie files:
- A server cookie file, located at
$env:WINDIR\system32\config\systemprofile\.erlang.cookie
(prior to Erlang 20.2 it was located at$env:WINDIR\.erlang.cookie
). - A client cookie file, located at
$env:USERPROFILE\.erlang.cookie
.
Copying the server cookie file over the client one, so that both files were the same, fixed the problem for me.
For further details, see "How Nodes (and CLI tools) Authenticate to Each Other: the Erlang Cookie".
Solution 3 - Windows
From RabbitMQ Command Prompt sbin (run as administrator) execute this command:
rabbitmq-server restart
Solution 4 - Windows
In Windown, For some reason delete all folder in c:\Users\xxx\AppData\Roaming\RabbitMQ\db\
(xxx
is your username)
then flow @Jerdev answer and
-
start rabbitmq
net start rabbitmq
-
check rabbitmq service
rabbitmqctl status
Solution 5 - Windows
The same question on the RabbitMQ mailing list: https://groups.google.com/forum/#!topic/rabbitmq-users/0s1ExFhl4hM.
The Erlang cookie is used by rabbitmqctl
as well as server nodes, so it may need being taken care of (placed in the correct location).
See "Installing as a non-administrator user leaves .erlang.cookie in the wrong place" on Windows quirks.
Solution 6 - Windows
I resolve my problem doing this in Windows 10.
- Execute RabbitMQ Command Prompt (sbin dir) as administrator.
- Execute "rabbitmq-service remove" in (RabbitMQ Command Prompt).
- Execute %AppData% in Run Dialog Box of Windows.
- Delete all files in RabbitMQ folder.
- Execute "rabbitmq-service install" in (RabbitMQ Command Prompt).
- Execute "rabbitmqctl start_app" in (RabbitMQ Command Prompt).
Solution 7 - Windows
If you come here looking for a linux answer for the same error message, try
sudo service rabbitmq-server start
(which is not a blocking command)
Solution 8 - Windows
Just do the following:
-
Uninstall rabbitmq and erlang.
-
delete the rabbitmq folder existing in your appdata (if you dont know the appdata location, just type echo %AppData% in the command prompt)
-
Then install erlang first and then rabbitmq.
-
After installing, enable the management plugin using below command:
rabbitmq-plugins enable rabbitmq_management
Solution 9 - Windows
For me the cookies didnt match, like the other comments but the locations was in a different path for those having the same issue as me C:\Windows\System32\config\systemprofile
Solution 10 - Windows
That is happening because rabbit MQ is not being installed correctly on Windows (and this error is misleading!). So to solve it do the following:
- type "cmd" in Cortana search or in "Run" for older version of Windows
- right click on in and choose "Run as Administrator"
- go to rabbit's sbin folder (cd "C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.4\sbin")
- run: rabbitmq-service remove
- run: rabbitmq-service install
now you can run 6. rabbitmq-plugins enable rabbitmq_management
- rabbitmq-service start
- and, finally, run: start http://localhost:15672
- log on as user "guest" with password: "guest" and that's it. Happy Rabbiting!
Solution 11 - Windows
I missed restarting my WINDOWS OS and then deleting the old version of ERLANG (which I uninstalled before restarting).
Somehow the fresh installation of Rabbit was referring to the old (un-installed version) and all the mismatch was happening. Clue was the 'services' referred Rabbit from the old ERLANG version.
Solution 12 - Windows
This is how I resolved the error in my Windows 8 system:
Check for a syntax error in the rabbitmq.config
file placed in the AppData folder for Windows.
How to check if there is any syntax error?
You can run rabbitmq-server restart
from sbin folder in:
Program Files/RabbitMQ/rabbitmq_server_x.x/sbin/
.
Replace the content of the rabbitmq.config
with rabbitmq.config.example
.
You may find the rabbitmq.config.example in:
Program Files/RabbitMQ/rabbitmq_server_x.x/etc/
Warning, you will lose the configuration you have saved previously with rabbitmq.
After changing the files, just hit
> rabbitmq-server restart
in the sbin folder mentioned above.