Rasa X doesn't return multiple dispatcher.utter_message from loop

Hi all,

Use case: I want to show all appointments from a calendar for a specific day. For this purpose I have a loop that iterates over all appointments of the day specified by the user. Each unique appointment is shown via dispatcher.utter_message(appointment).

In Rasa this is not a problem. Exactly as it should be all appointments are shown one by one. In Rasa X only the first appointment is shown.

events = events_result.get('items', [])
        for event in events:
            summary = event.get("summary", "")
            start = event.get("start", "")
            end = event.get("end", "")
            message = (
                       f"\nevent = {summary}"
                       f"\nstart = {start}"
                       f"\nend = {end}")

            dispatcher.utter_message(message)

It seems that in Rasa X you can not return multiple messages in a row to the user.

Has anyone else run into this as well? Is this a bug in Rasa X or can I fix it in the code?

  • Rasa Version : 2.0.2
  • Rasa SDK Version : 2.0.0
  • Rasa X Version : 0.33.0
  • Python Version : 3.8.0
  • Operating System : Windows-10-10.0.19041-SP0
1 Like

Update:

I have connected facebook messenger directly to Rasa X. If I request the appointments as described above, facebook messenger will display all appointments. However, in Rasa X that I have open at the same time, only the first appointment is shown. Because of this it seems that this issue only plays in Rasa X.

I am running into this issue as well. Currently with a simple custom action with only two dispatcher.utter_message() calls, only the first one is displayed. This doesn’t happen in rasa shell.

Must add I am running Rasa X locally.

  • Rasa Version : 2.0.2
  • Rasa SDK Version : 2.0.0
  • Rasa X Version : 0.33.2
  • Python Version : 3.8.3
  • Operating System : Windows-10-10.0.18362-SP0
2 Likes

Also experiencing this in latest Rasa X. What I wanted to do is in FormValidationAction. In the formbot example, it has one utter_message when validation fails. In my use case, I want to utter_message even if validation does not fail i.e., 2 utter_message one from the validation and one for the next entity.

In my Rasa X, it prints the message from validation but it does not prints the next entity / question.

Running also Rasa X in local mode with same version as fredericoRocha

Same here. Rasa X does not display multiple dispatcher.utter_message() inside a loop.

I tried to instead construct the whole message in the for loop by doing message += text + '\n', but it doesn’t even utter the message. If I remove \n, it works.

But in Rasa Shell, it works as expected.

  • Rasa Version : 2.2.5
  • Rasa SDK Version : 2.2.0
  • Rasa X Version : 0.35.0
  • Python Version : 3.8.0
  • Operating System : Windows-10-10.0.19041-SP0