Simultaneous ReminderScheduled not working

Hi All!

Running Rasa on Docker Rasa 1.9.0

I have a issue with the ReminderScheduled function. The idea is to send a reminder to all our users every day at 9am. So far the function manage to send the reminder just to 1 users, but the other users does not receive the reminder.

I already check the actions server in debug mode, I can see how the action for the ReminderScheduled was executed. The problems comes when the reminder is trigger, it is not reaching out all the users, jus one.

here is the action code:

class CheckInSchedule01(Action):

    def name(self) -> Text:
        return "action_schedule_checkin01"

    async def run(self, dispatcher, tracker, domain) -> List[Dict[Text, Any]]:
        returntime = TimeScheduler.schedule_hours_morning(CHECKIN_MORNING)
        return [ReminderScheduled("EXTERNAL_start_s2", trigger_date_time=returntime, name="action_schedule_checkin01", kill_on_user_message=False)]

Hi @alebeta90

Is action_schedule_checkin01 called for every user? I.e. did every user have a conversation where action_schedule_checkin01 was executed by the bot?

Hi @j.mosig

yes, that is right, this is our case.

thanks

I think it is happening because of this?

https://github.com/RasaHQ/rasa/blob/master/rasa/core/events/init.py#L621

Right. Every reminder must have a unique name. A random string will be chosen if you don’t provide a name. What happens if you don’t provide a name, i.e. ReminderScheduled("EXTERNAL_start_s2", trigger_date_time=returntime, kill_on_user_message=False)?

Hi @j.mosig

thanks for the answer,

I think it is not a random string, at least I can see here:

https://github.com/RasaHQ/rasa/blob/master/rasa/core/events/init.py#L634

It is setting the user id as the name. that is right?

then the best would be to don’t add the name in the ReminderScheduled Function

No, uuid.uuid1() generates random objects of 128 bits. You would still need to set names by yourself if you want to be able to cancel one particular reminder, so the name field in ReminderScheduled should be there.

Hi @j.mosig

thanks for the clarification, now all make sense and we understand its behavior better.

All the best

1 Like

We set the sender_id as the name, doing so, we can cancel the reminder in the future and the name keep being unique

1 Like