mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-07-05 23:19:22 +00:00
When a router emits a signal that should re-trigger an or_() listener that has already fired, the listener was permanently blocked by _fired_or_listeners. This created a catch-22: the clearing logic in _execute_single_listener (for cyclic re-execution) could never be reached because _find_triggered_methods blocked the listener first. Fix: Before processing router results as triggers, reset _fired_or_listeners entries for any OR listeners whose conditions match the router output signals. This preserves concurrent start-method protection (original trigger_method) while unblocking cyclic re-triggering through routers. Co-Authored-By: João <joao@crewai.com>