RabbitMQ failed to start, TCP connection succeeded but Erlang distribution failed

Posted by Jenniffer Sheldon on Thursday, March 7, 2024

I'm a new one just start to learn and install RabbitMQ on Windows System.

I install Erlang VM and RabbitMQ in custom folder, not default folder (Both of them).

Then I have restarted my computer.

By the way,My Computer name is "NULL"

I cd to the RabbitMQ/sbin folder and use command:

rabbitmqctl status

But the return message is:

Status of node rabbit@NULL ...

Error: unable to perform an operation on node 'rabbit@NULL'. Please see diagnostics information and suggestions below.

Most common reasons for this are:

  • Target node is unreachable (e.g. due to hostname resolution, TCP connection or firewall issues)
  • CLI tool fails to authenticate with the server (e.g. due to CLI tool's Erlang cookie not matching that of the server)
  • Target node is not running

In addition to the diagnostics info below:

DIAGNOSTICS

attempted to contact: [rabbit@NULL]

rabbit@NULL:

  • connected to epmd (port 4369) on NULL
  • epmd reports node 'rabbit' uses port 25672 for inter-node and CLI tool traffic
  • TCP connection succeeded but Erlang distribution failed

  • Authentication failed (rejected by the remote node), please check the Erlang cookie

Current node details:

  • node name: rabbitmqcli70@NULL
  • effective user's home directory: C:\Users\Jerry Song
  • Erlang cookie hash: 51gvGHZpn0gIK86cfiS7vp==

I have try to RESTART RabbitMQ, What I get is:

ERROR: node with name "rabbit" already running on "NULL"

By the way,My Computer name is "NULL" And I have enable all ports in firewall.

2

11 Answers

https://groups.google.com/forum/#!topic/rabbitmq-users/a6sqrAUX_Fg describes the problem where there is a cookie mismatch on a fresh installation of Rabbit MQ. The easy solution on windows is to synchronize the cookies

Also described here: http://www.rabbitmq.com/clustering.html#erlang-cookie

Ensure cookies are synchronized across 1, 2 and Optionally 3 below

  • %HOMEDRIVE%%HOMEPATH%\.erlang.cookie (usually C:\Users\%USERNAME%\.erlang.cookie for user %USERNAME%) if both the HOMEDRIVE and HOMEPATH environment variables are set

  • %USERPROFILE%\.erlang.cookie (usually C:\Users\%USERNAME%\.erlang.cookie) if HOMEDRIVE and HOMEPATH are not both set

  • For the RabbitMQ Windows service - %USERPROFILE%\.erlang.cookie (usually C:\WINDOWS\system32\config\systemprofile)
  • The cookie file used by the Windows service account and the user running CLI tools must be synchronized by copying the one from C:\WINDOWS\system32\config\systemprofile folder.

    4

    If you are using dedicated drive folder locations for your development tools/software in Windows10(Not the windows default location), one way you can synchronize the erlang cookie as described by https://www.rabbitmq.com/cli.html is by copying the cookie as explained below.

    Please note in my case HOMEDRIVE and HOMEPATH environment variables both are not set.

    After copying the "C:\Windows\system32\config\systemprofile\.erlang.cookie" to "C:\Users\%USERNAME%\.erlang.cookie" ,

    the error "tcp connection succeeded but Erlang distribution failed" is resolved.

    Now I am able to use "rabbitmqctl.bat status" command successfully. Hence there is no mandatory need to install in default location to resolve this error as synchronizing cookie will resolve that error.

    3

    In my case similar issue (Authentication failed because of Erlang cookies mismatch) solved by copying .erlang.cookie file from Windows system dir - C:\Windows\system32\config\systemprofile\.erlang.cookie to %HOMEDRIVE%%HOMEPATH%\.erlang.cookie (where %HOMEDRIVE% was set to H: and %HOMEPATH% to \ respectively)

    Quick setup TODO for Windows, Erlang OTP 24 and RabbitMQ 3.8.19:

  • Download & Install Erlang [OTP 24] (needs Admin rights) from: https://www.erlang.org/downloads
  • set ERLANG_HOME (should point to install dir)
  • Download & Install recent [3.8.19] RabbitMQ (needs Admin rights) from: https://github.com/rabbitmq/rabbitmq-server/releases/
  • Follow: https://www.rabbitmq.com/install-windows.html and/or https://www.rabbitmq.com/install-windows-manual.html
  • set RABBITMQ_SERVER (should point to install dir)
  • update %PATH% by adding: ;%RABBITMQ_SERVER%\sbin
  • Fix Erlang-cookie issue from above, follow: https://www.rabbitmq.com/cli.html#erlang-cookie
  • Enable Web UI by running command: %RABBITMQ_SERVER%/sbin/rabbitmq-plugins.bat enable rabbitmq_management
  • From item #8 (above) got error because of missing file: %USERPROFILEDIR%/AppData/Roaming/RabbitMQ/enabled_plugins -> had to create it and run %RABBITMQ_SERVER%/sbin/rabbitmq-plugins.bat enable rabbitmq_management again!
  • Run/restart on the way might be required
  • Finally, login to: http://localhost:15672/ (guest:guest) RabbitMQ web UI
  • , or check by cURL: curl -i -u guest:guest http://localhost:15672/api/vhosts should receive response like:

     HTTP/1.1 200 OK cache-control: no-cache content-length: 186 content-security-policy: script-src 'self' 'unsafe-eval' 'unsafe-inline'; object-src 'self' content-type: application/json date: Tue, 13 Jul 2021 11:21:12 GMT server: Cowboy vary: accept, accept-encoding, origin [{"cluster_state":{"rabbit@hostname":"running"},"description":"Default virtual host","metadata":{"description":"Default virtual host","tags":[]},"name":"/","tags":[],"tracing":false}]

    P.S. Some useful RabbitMQ CLI commands (copy-paste):

    • %RABBITMQ_SERVER%/sbin/rabbitmqctl start_app
    • %RABBITMQ_SERVER%/sbin/rabbitmqctl stop_app
    • %RABBITMQ_SERVER%/sbin/rabbitmqctl status

    P.P.S. UPDATE: great article for this subject: https://www.journaldev.com/11655/spring-rabbitmq

    How I resolved mine

    It's mostly caused by cookie mismatch on a fresh installation of Rabbit MQ

    follow this 2 steps

    1. copy the .erlang.cookie file from C:\Windows\System32\config\systemprofile paste it into C:\Users\["your user nameusername"] folder 2. run rabbitmq-service.bat stop and rabbitmq-service.bat start 

    Done it should work now when you run 'rabbitmqctl start_app' good luck.

    note if you have more than one user put it in the correct user folder

    1

    I have reinstalled the RabbitMQ in my computer by using default setup folder

    Then checked with the command :

    rabbitmqctl status

    It works now, not the problem of Erlang VM .(Means Er can install at another folder)

    It will cause some problem (like this one) that I couldn't find out now if we don't use the RabbitMQ default setup require folder (C:\Program Files\RabbitMQ Server)

    If anyone finds it out, I hope you can tell me why and how to fix.

    2

    In Centos.

  • add ip nodename pair to /etc/hosts on each node.

  • restart rabbitmq-server service on each slave node.

  • works for me.

    2

    i got error like this, i just stop my rabbitMQ with close port 25672 here syntax for linux:
    kill -9 $(lsof -t -i:25672)

    Error Images:

    enter image description here

    3

    Just adding my experience if it helps others down the line.

    I wrote a Powershell .ps1 script to install and configure RabbitMQ which would be used as one of the stept to provision a server with Packer.

    I wrote the code on a fresh AWS W2016 Server build. It worked fine when run on the box (as administrator, from an admin PS console) but when the same code was moved over to the Packer build server, it would fall over when doing the rabbitmqctl.bat configuration steps via packer, despite both using (as far as I can tell) Administrator to run the scripts.

    So this worked on the coding box:

    $pathvargs = {cmd.exe /c "rabbitmqctl.bat" add_user Username Password} Invoke-Command -ScriptBlock $pathvargs $pathvargs = {cmd.exe /c "rabbitmqctl.bat" set_user_tags User administrator} Invoke-Command -ScriptBlock $pathvargs $pathvargs = {cmd.exe /c "rabbitmqctl.bat" set_permissions -p "/" User "^User-.*" ".*" ".*"} Invoke-Command -ScriptBlock $pathvargs Write-Host "Did RabbitMQ" 

    But I had to prelude this with...

    copy "C:\Windows\system32\config\systemprofile\.erlang.cookie" "C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.17\sbin\.erlang.cookie" copy "C:\Windows\system32\config\systemprofile\.erlang.cookie" $env:userprofile\.erlang.cookie -force 

    ... On the Packer box.

    I am guessing there is some context issue going on but I'm using

    "winrm_username": "Administrator", 

    in the Packer builders block, so I thought this would suffice.

    TL;DR - Use the Cookie even though it works without it in some instances.

    I have encountered the same error after installing Erlang VM and RabbitMQ using the default installation folders in Windows 10. Managed to start the management and access it via HTTP, but status failed with this error.

    The cookie was fine in all folders (%HOMEDRIVE%%HOMEPATH%, %USERPROFILE%, C:\WINDOWS\system32\config\systemprofile).

    I had to perform a restart the Windows to make it work. After restart it set up something to run at startup + asked permission to make an exception in the firewall.

    In my case, the file was at c:\\Windows\.erlang.cookie, just copied it to C:\Users{USERNAME} and all works, thanks to everyone for the hits

    Another thing to check after making sure the cookie file is in all the locations.. is to realize that you installed 32 bit Erlang.. not 64.. Happened to me. Removed 32 bit Erlang and Installed 64 and rabbitmqctl status returns expected results.

    1

    ncG1vNJzZmirpJawrLvVnqmfpJ%2Bse6S7zGiorp2jqbawutJoa3BwZ2mGdoSOq5ibmpmpurJ5xZqgpZ2UYsGwedKtmKusXamwsXnCqKWnnZOptrC6jKysnJuVmrGmsIybrK1llae5orrGZpuiq6SntqPB06Kmp2WWlratsQ%3D%3D