Inconsistent rule matching

I have a rule that looks like this:

- rule: rule X
  - active_loop: null
  - intent: use_tool_w_product
  - action: process_use_tool_w_product_faq

I would expect this rule to be matched each time the use_tool_w_product intent is identified and there is no active form.

That is however not the case. If I launch rasa, and enter the use_tool_w_product intent, the rule is matched and process_use_tool_w_product_faq is executed as expected. However, if I immediately enter the use_tool_w_product intent again, the rule is no longer matched. The only thing that changes between the first time, when the rule is matched, and the second time, when it is not, is the value of two slots. I have two slots that are initialized to non-null values. Those slots were being reset to None after the process_use_tool_w_product_faq was executed. If I do not reset those two slots (i.e., let them have their initial value), the the rule is matched all the times.

I would say this is a bug, since those two slots are not used in the rule´s condition, but maybe I am missing something about the way rules are matched. So… is this a bug? And if not, how are rules actually matched and why the value of those two slots affects the matching?


Issue #9302 has been opened for this.