Connection Failed to Rabbitmq from Rasa to Rasa-x

Rasa logs the following pika/rabbitmq errors when trying to connect to Rasa-x. Hoping the community or some :rasahero: can suggest some tips to debug.

ERROR    pika.adapters.utils.io_services_utils  - Socket failed to connect: <socket.socket fd=21, family=AddressFamily.AF_INET, type=2049, proto=6, laddr=('172.17.0.2', 54226)>; error=111 (Connection refused)
ERROR    pika.adapters.utils.connection_workflow  - TCP Connection attempt failed: ConnectionRefusedError(111, 'Connection refused'); dest=(<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('35.x.x.x.x', 5672))
ERROR    pika.adapters.utils.connection_workflow  - AMQPConnector - reporting failure: AMQPConnectorSocketConnectError: ConnectionRefusedError(111, 'Connection refused')

Debug Efforts

Firewall logs show traffic is reaching port 5672 on Rasa-x’s instance.

I tried testing pika running on the rasa-x VM and was not able to connect to rasa_rabbit_1 on localhost.

Rasa-x install looks good.

# rasa-x VM
$ sudo docker-compose ps
         Name                       Command               State                      Ports                   
-------------------------------------------------------------------------------------------------------------
rasa_app_1               ./entrypoint.sh run python ...   Up      5055/tcp                                   
rasa_db_1                /entrypoint.sh /run.sh           Up      5432/tcp                                   
rasa_duckling_1          duckling-example-exe --no- ...   Up      8000/tcp                                   
rasa_nginx_1             /opt/bitnami/entrypoint.sh ...   Up      0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp
rasa_rabbit_1            /entrypoint.sh /run.sh           Up      15672/tcp, 25672/tcp, 4369/tcp, 5672/tcp   
rasa_rasa-production_1   rasa x --no-prompt --produ ...   Up      5005/tcp                                   
rasa_rasa-worker_1       rasa x --no-prompt --produ ...   Up      5005/tcp                                   
rasa_rasa-x_1            sh -c user_id=$(id -u) &&  ...   Up      5002/tcp                                   
rasa_redis_1             /entrypoint.sh /run.sh           Up      6379/tcp                                   

I don’t see any useful looking logs from rasa-x or from the rabbit container.

I’m not sure of additional steps I can take within rasa_rabbit_1 to further debug. Any advice would be appreciated!

Versions

rasa/rasa:1.6.1-full
rasa/rasa-x:0.25.2

Setup

Compute engine on GCP. rasa-x running on Debian 9. Docker-Compose Quick Install. Http only. Connecting with bare IPs until a domain transfers.

Hi @tom-antonio could you post the full rabbit and rasa-x logs (enabling debug mode for rasa-x by setting DEBUG_MODE: true preferrably)? These errors often show up at the beginning because not all the services are fully up yet, but later go away.

Thanks for the reply @akelad, apologies for not including full logs initially!

Some background, I’m going through the step of connecting rasa-x to a live rasa deployment. I have not yet setup integrated version control. When pinging rasa I get the expected response, but then don’t see any log of that conversation in rasa-x.

I set DEBUG_MODE=true in rasa-x’s .env and did docker-compose down, then up.

Here are the logs:

Sorry for the late reply. If the error is in the rasa container, then you need to add a --debug flag to the start up command of the container in your docker-compose.yml.

When you say you’re going through the step of connecting rasa-x to a live rasa deployment - are the logs you sent for the rasa container the ones from your live deployment or from the rasa-production/rasa-worker containers that come with Rasa X? Could you send the endpoints.yml you’ve configured for the live rasa deployment?

@tom-antonio did you manage to get it working?

Hey @akelad! Thank you very much for the follow up, great community here. I was on vacation for two weeks, and then we both know how the last week has been…

My issue was resolved! Thank you so much again for the support, so far I have a very positive impression of Rasa. My problem was that a port was not exposed properly.

I noticed the Rasa X configuration guide had been updated with the below.

# docker-compose.override.yml
version: '3.4'
services:
  rabbit:
    ports:
      - "5672:5672"

You can see the resulting change in my docker-compose with port 5672 forwarding now:

# OLD rasa-x VM
$ sudo docker-compose ps
         Name                       Command               State                      Ports                   
-------------------------------------------------------------------------------------------------------------
rasa_app_1               ./entrypoint.sh run python ...   Up      5055/tcp                                   
rasa_db_1                /entrypoint.sh /run.sh           Up      5432/tcp                                   
rasa_duckling_1          duckling-example-exe --no- ...   Up      8000/tcp                                   
rasa_nginx_1             /opt/bitnami/entrypoint.sh ...   Up      0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp
rasa_rabbit_1            /entrypoint.sh /run.sh           Up      15672/tcp, 25672/tcp, 4369/tcp, 5672/tcp   
rasa_rasa-production_1   rasa x --no-prompt --produ ...   Up      5005/tcp                                   
rasa_rasa-worker_1       rasa x --no-prompt --produ ...   Up      5005/tcp                                   
rasa_rasa-x_1            sh -c user_id=$(id -u) &&  ...   Up      5002/tcp                                   
rasa_redis_1             /entrypoint.sh /run.sh           Up      6379/tcp

# NEW rasa-x VM
$ sudo docker-compose ps
         Name                       Command               State                         Ports                      
-------------------------------------------------------------------------------------------------------------------
rasa_app_1               ./entrypoint.sh run python ...   Up      5055/tcp                                         
rasa_db_1                /entrypoint.sh /run.sh           Up      5432/tcp                                         
rasa_duckling_1          duckling-example-exe --no- ...   Up      8000/tcp                                         
rasa_nginx_1             /opt/bitnami/entrypoint.sh ...   Up      0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp      
rasa_rabbit_1            /entrypoint.sh /run.sh           Up      15672/tcp, 25672/tcp, 4369/tcp,                  
                                                                  0.0.0.0:5672->5672/tcp                           
rasa_rasa-production_1   rasa x --no-prompt --produ ...   Up      5005/tcp                                         
rasa_rasa-worker_1       rasa x --no-prompt --produ ...   Up      5005/tcp                                         
rasa_rasa-x_1            sh -c user_id=$(id -u) &&  ...   Up      5002/tcp                                         
rasa_redis_1             /entrypoint.sh /run.sh           Up      6379/tcp

@akelad I was wondering if it is possible to communicate in this way between Rasa X and Rasa OS on the same machine? I have added the lines in docker-compose.override.yml to expose 5672, but was unable to get it working with a concurrent docker-compose Rasa environment on my same VM. Thanks!

that should technically work, but depends how you have things setup. They would probably have to run in the same docker network. Any reason why you wouldn’t just use the rasa-production container that comes with Rasa X?

The reason I wanted to see if I could connect Rasa X to a Rasa OS docker-compose deployment was that I have a bitbucket repo that has a self contained “app” folder with everything I need for transferring volumes to Rasa OS with the docker-compose files I had for OS. Also, I wanted to use Twilio with Rasa X, and was going to see if I could set up my Rasa OS docker-compose deployment with Twilio and connect it via Rabbit to Rasa X since I could not get Twilio working directly with Rasa X. Rasa OS docker-compose.yml:

version: '3.4'

services:
  rasa:
    image: rasa/rasa:latest-full
    networks: ['rasa-network']
    ports:
    - "5005:5005"
    volumes:
    - ./:/app
    command:
    - run

  action_server:
    image: rasa/rasa-sdk:latest
    networks: ['rasa-network']
    ports:
    - "5055:5055"
    volumes:
    - ./actions:/app/actions

  duckling:
    image: rasa/duckling:latest
    networks: ['rasa-network']
    ports:
    - "8000:8000"

networks: {rasa-network: {}}

What was the issue with getting Twilio working directly with Rasa X? Did you follow this guide?

how have you configured the event broker in your endpoints.yml for that rasa deployment?

ah seems like you answered my twilio question in the other post :smiley: