Custom Actions Not Running in Rasa X

I am trying to run Rasa x . My project contains custom actions and so I tried to run the action server by typing ‘rasa run actions’ in one terminal and ‘rasa x’ in the other. But the actions do not run and only intent name is shown.

The output of action server terminal:

(installingrasa) C:\Users\dasba\Desktop\intr>rasa run actions
2020-07-23 00:50:30 INFO     rasa_sdk.endpoint  - Starting action endpoint server...
2020-07-23 00:50:30 INFO     rasa_sdk.executor  - Registered function for 'action_find_info'.
2020-07-23 00:50:30 INFO     rasa_sdk.endpoint  - Action endpoint is up and running on http://localhost:5055

The Output of rasa x terminal:

(installingrasa) C:\Users\dasba\Desktop\intr>rasa x
Starting Rasa X in local mode... 🚀
2020-07-23 00:51:13 ERROR    concurrent.futures  - exception calling callback for <Future at 0x24870dd7388 state=finished raised gaierror>
Traceback (most recent call last):
  File "c:\users\dasba\anaconda3\envs\installingrasa\lib\concurrent\futures\thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "c:\users\dasba\anaconda3\envs\installingrasa\lib\socket.py", line 752, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11001] getaddrinfo failed

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\users\dasba\anaconda3\envs\installingrasa\lib\concurrent\futures\_base.py", line 324, in _invoke_callbacks
    callback(self)
  File "c:\users\dasba\anaconda3\envs\installingrasa\lib\asyncio\futures.py", line 365, in _call_set_state
    dest_loop.call_soon_threadsafe(_set_state, destination, source)
  File "c:\users\dasba\anaconda3\envs\installingrasa\lib\asyncio\base_events.py", line 736, in call_soon_threadsafe
    self._check_closed()
  File "c:\users\dasba\anaconda3\envs\installingrasa\lib\asyncio\base_events.py", line 479, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
2020-07-23 00:51:13 ERROR    concurrent.futures  - exception calling callback for <Future at 0x24870dc7e48 state=finished returned list>
Traceback (most recent call last):
  File "c:\users\dasba\anaconda3\envs\installingrasa\lib\concurrent\futures\_base.py", line 324, in _invoke_callbacks
    callback(self)
  File "c:\users\dasba\anaconda3\envs\installingrasa\lib\asyncio\futures.py", line 365, in _call_set_state
    dest_loop.call_soon_threadsafe(_set_state, destination, source)
  File "c:\users\dasba\anaconda3\envs\installingrasa\lib\asyncio\base_events.py", line 736, in call_soon_threadsafe
    self._check_closed()
  File "c:\users\dasba\anaconda3\envs\installingrasa\lib\asyncio\base_events.py", line 479, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed

The server is running at http://localhost:5002/login?username=me&password=LrOvlJr48UlO

2020-07-23 00:51:19 WARNING  sanic.root  - Sanic tried to use loop.add_signal_handler but it is not implemented on this platform.
2020-07-23 00:51:19 WARNING  sanic.root  - Sanic tried to use loop.add_signal_handler but it is not implemented on this platform.
2020-07-23 00:51:31 ERROR    asyncio  - Task was destroyed but it is pending!
task: <Task pending coro=<TCPConnector._resolve_host() running at c:\users\dasba\anaconda3\envs\installingrasa\lib\site-packages\aiohttp\connector.py:830> wait_for=<Future pending cb=[_chain_future.<locals>._call_check_cancel() at c:\users\dasba\anaconda3\envs\installingrasa\lib\asyncio\futures.py:351, <TaskWakeupMethWrapper object at 0x0000024870DEBAC8>()]>>
2020-07-23 00:51:31 ERROR    asyncio  - Task was destroyed but it is pending!
task: <Task pending coro=<TCPConnector._resolve_host() running at c:\users\dasba\anaconda3\envs\installingrasa\lib\site-packages\aiohttp\connector.py:830> wait_for=<Future pending cb=[_chain_future.<locals>._call_check_cancel() at c:\users\dasba\anaconda3\envs\installingrasa\lib\asyncio\futures.py:351, <TaskWakeupMethWrapper object at 0x0000024870DEBDC8>()]>>
c:\users\dasba\anaconda3\envs\installingrasa\lib\site-packages\sklearn\externals\joblib\__init__.py:15: FutureWarning: sklearn.externals.joblib is deprecated in 0.21 and will be removed in 0.23. Please import this functionality directly from joblib, which can be installed with: pip install joblib. If this warning is raised when loading pickled models, you may need to re-serialize those models with scikit-learn 0.21+.
  warnings.warn(msg, category=FutureWarning)
c:\users\dasba\anaconda3\envs\installingrasa\lib\site-packages\rasa\nlu\classifiers\diet_classifier.py:918: FutureWarning: 'EmbeddingIntentClassifier' is deprecated and will be removed in version 2.0. Use 'DIETClassifier' instead.
  model=model,
c:\users\dasba\anaconda3\envs\installingrasa\lib\site-packages\rasa\core\policies\keras_policy.py:265: FutureWarning: 'KerasPolicy' is deprecated and will be removed in version 2.0. Use 'TEDPolicy' instead.
  current_epoch=meta["epochs"],
WARNING:rasax.community.services.event_consumers.event_consumer:Saving event failed due to an 'IntegrityError'. This means that the event is already stored in the database. The event data was '{"sender_id": "f61b7473779a4d6ea9e86251a32dd928", "event": "action", "timestamp": 1595445708.2457628, "name": "action_listen", "policy": null, "confidence": null}'. (sqlite3.IntegrityError) UNIQUE constraint failed: conversation_event.conversation_id, conversation_event.timestamp, conversation_event.type_name
[SQL: INSERT INTO conversation_event (conversation_id, type_name, timestamp, intent_name, action_name, slot_name, slot_value, policy, is_flagged, data, evaluation, rasa_environment) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]
[parameters: ('f61b7473779a4d6ea9e86251a32dd928', 'action', 1595445708.2457628, None, 'action_listen', None, None, None, 0, '{"sender_id": "f61b7473779a4d6ea9e86251a32dd928", "event": "action", "timestamp": 1595445708.2457628, "name": "action_listen", "policy": null, "confidence": null}', None, 'production')]
(Background on this error at: http://sqlalche.me/e/13/gkpj)

I am attaching my files. Please Help !! actions.py (2.4 KB) claims.db (12 KB) config.yml (280 Bytes) credentials.yml (938 Bytes) domain.yml (1.4 KB) endpoints.yml (1.5 KB) entitlements.db (24 KB) nlu.md (1.7 KB) stories.md (856 Bytes)

I think this is the key issue. What OS are you running on?

If you’re running on Windows, I’d recommend the Quick Install method which uses a lightweight Kubernetes called k3s. The docs for Windows are here.

I am running on Windows 10. I installed rasa x using the local installation method. I am a complete noob , can you please elaborate on what I should do now !!

@Juste Can you please help me out !!

Hi @Swarnav. Did you resolve this?

Hi @Swarnav. Did you resolve this?

No … I couldn’t solve it . So I installed Ubuntu alongside Windows and installed Rasa and Rasa X in Ubuntu and it was working fine there. So I suggest you to use Ubuntu .

A few days before I even followed a Youtube Tutorial for installing rasa in Windows 10 by Rachael but still it did not solve my problem.

I faced the same issue on my Windows 10. As mentioned HERE, setting environment variables for http_proxy and https_proxy helped.

I did it in cmd with commands:

SET http_proxy=http://localhost:5002
SET https_proxy=http://localhost:5002
1 Like

It works @sidorowicz-aleksandra!

I had the RuntimeError: Event loop is closed but Rasa X still worked. But this error was annoying me, and well… errors are meant to be fixed.

I still have this error though:

Starting Rasa X in local mode... 🚀
2021-03-02 17:08:11 ERROR    asyncio  - Error on reading from the event loop self pipe
loop: <ProactorEventLoop running=True closed=False debug=False>
Traceback (most recent call last):
  File "E:\Program Files\Python\Python38\lib\asyncio\windows_events.py", line 453, in finish_recv
    return ov.getresult()
OSError: [WinError 995] The I/O operation has been aborted because of either a thread exit or an application request

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "E:\Program Files\Python\Python38\lib\asyncio\proactor_events.py", line 768, in _loop_self_reading
    f.result()  # may raise
  File "E:\Program Files\Python\Python38\lib\asyncio\windows_events.py", line 808, in _poll
    value = callback(transferred, key, ov)
  File "E:\Program Files\Python\Python38\lib\asyncio\windows_events.py", line 457, in finish_recv
    raise ConnectionResetError(*exc.args)
ConnectionResetError: [WinError 995] The I/O operation has been aborted because of either a thread exit or an application request
[2021-03-02 17:09:17 +0200] [22224] [INFO] Goin Fast @ http://0.0.0.0:5002
2021-03-02 17:09:17 INFO     sanic.root  - Goin Fast @ http://0.0.0.0:5002

The server is running at http://localhost:5002/login?username=me&password=PQvcIvedY9ar

@ChrisRahme try this one:

1 Like

I tried, I already have prompt-toolkit==2.0.10.

It’s fine anyway, it’s just my local installation on Windows. As long as it’s not my bot in production that has the error, I’m okay with it.

Downgrading prompt-toolkit to version 2.0.10 did not work for me as well. I did what MrEightFive wrote, i.e.

Adding to file <path_to_python>\Lib\asyncio\proactor_events.py in function BaseProactorEventLoop._loop_self_reading after line 768 the following code:

766....try:
767........if f is not None:
768............f.result() # may raise
...........if self._stopping:
...............raise exceptions.CancelledError("Event loop is stopping")
769........f = self._proactor.recv(self._ssock, 4096)

@ChrisRahme have you tried that?

1 Like

Thank you so much, @sidorowicz-aleksandra, that worked!

1 Like

You did this by activating the conda environment for the chatbot and then executed this?