About "Return to the previous step or two steps"

Hello everyone, when I use the ActionReverted class function to return to the previous dialog, I found that there are 10 consecutive utter_undo statements, along with WARNING: rasa_core.processor: ircuit breaker tripped. Stopped predicting more actions for sender ‘default’. I also tried the UserUtteranceReverted class function to return to the previous dialog, but I understand that it return to the current dialog , not the previous one. How can I return to the previous step or return to the previous two steps? Thanks in advance for any suggestions.

Can you provide the story where this would happen and also the Action you’re using?

Like “restart”, there is only one story and Action for “undo”:

Generated

*undo

 -utter_undo

My custom function:

class ActionRe(Action):

 def name(self):

      return "utter_undo"

 def run(self,dispatcher,tracker,domain):

      from rasa_core.event import ActionReverted

      dispatcher,utter_template("utter_re",tracker,silent_fail=True)

      return [ActionReverted()]

I have modified the applied_events function of the source trackers.py, but it is not very stable. The first return can be successful, but the next return is not very stable. Thank you for your reply.

try return [UserUtteranceReverted()]

Well, I tried it before, but it is not what I want to return to the previous layer. If I use this ‘UserUtteranceReverted ’ function, I want to return to the previous two layers.

Sorry, then I don’t understand what you want. For the story you posted above:

* undo
    - utter_undo

to me, it would make sense to forget user input undo.

When you return one ActionReverted() in your custom action, rasa_core forgets this action and predicts it again forever, that’s why you have ircuit breaker tripped. You could try:

return [ActionReverted(), ActionReverted()]

this way, you would forget one more action before your custom action

Thank you!