Help Center/ Distributed Message Service for RabbitMQ/ FAQs/ Connections/ Why Does a Client Fail to Connect to a RabbitMQ Instance?
Updated on 2023-07-20 GMT+08:00

Why Does a Client Fail to Connect to a RabbitMQ Instance?

This problem occurs when the connection address, port number, username, password, or virtual host name is incorrect, or when there is no virtual host or the maximum allowed number of connections is exceeded.

Possible Cause 1: Incorrect Connection Address

Error message displayed when an incorrect connection address is used during intra-VPC access:

[root@ecs-test RabbitMQ-Tutorial]# java -cp .:rabbitmq-tutorial.jar Send 192.168.125.110 5672 user *******
Exception in thread "main" java.net.NoRouteToHostException: No route to host (Host unreachable)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)

Error message displayed when an incorrect connection address is used during public access:

[root@ecs-test RabbitMQ-Tutorial]# java -cp .:rabbitmq-tutorial.jar Send 139.xxx.178 5672 user *******
Exception in thread "main" java.net.SocketTimeoutException: connect timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)

Solution: On the Basic Information page of the RabbitMQ console, obtain the private or public network connection address and modify the connection address in the code.

Possible Cause 2: Incorrect Port

Error message displayed when an incorrect port is used during intra-VPC access:

[root@ecs-test RabbitMQ-Tutorial]# java -cp .:rabbitmq-tutorial.jar Send 192.168.125.111 5673 user *******
Exception in thread "main" java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)

Error message displayed when an incorrect port is used during public access:

[root@ecs-test RabbitMQ-Tutorial]# java -cp .:rabbitmq-tutorial.jar Send 139.xxx.179 5673 user *******
Exception in thread "main" java.net.SocketTimeoutException: connect timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)

Solution: Change the port number.

Possible Cause 3: Incorrect Username or Password

The error information is as follows:

[root@ecs-test RabbitMQ-Tutorial]# java -cp .:rabbitmq-tutorial.jar Send 192.168.125.111 5672 user *******
Exception in thread "main" com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details
 see the broker logfile.
at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:351)
at com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:64)

Solution: Change the username or password. If you forget the password, set a new one by referring to Resetting the Instance Password.

Possible Cause 4: Maximum Number of Connections Exceeded

The error information is as follows:

Solution: Close unused connections.

Possible Cause 5: No Virtual Host Available or Incorrect Virtual Host Name

The error information is as follows:

Couldn't log in: server connection error 530, message: NOT_ALLOWED - vhost /localdev/ not found

Solutions:

  • If no virtual host is available, go to the Virtual Hosts page of the RabbitMQ console and create one.
  • If the virtual host name is incorrect, modify the connection URL and configuration file according to the virtual host name displayed on the Virtual Hosts page of the RabbitMQ console.