Reactor build 26116: empty group reaction
-
@gwp1 unrelated.
I'll try to find a few minutes to grab logs. I gave a quick look and saw nothing screaming.
-
I'll try to find a few minutes to grab logs. I gave a quick look and saw nothing screaming.
@gwp1 Logs probably long gone if you've already modified the reaction. It would help to see the group in its original form, though.
-
@gwp1 Logs probably long gone if you've already modified the reaction. It would help to see the group in its original form, though.
@toggledbits I still have the ruleset, just disabled. Easy enough to disable the temporary ones and re-enable this one and try to trigger it. (I had a smart moment!)
-
OK. Here's the release note I'm making on this for the next build:
- The behavior of empty "group" conditions was changed in error. As of the next build, the behavior is as follows: group actions may have empty constraints (no conditions), and since this is not explicitly false, the group will be allowed to run; while actions may not have empty constraints (and this will be enforced by the UI/editor going forward), and if a legacy while action is encountered with no conditions, it will not execute (safe behavior). A disabled group or while action will not run.
@toggledbits fair enough. I’ve analyzed more than 100 rules and I fixed a bunch of them manually. I’ll update my second system with next build.
Thanks!
-
@toggledbits so, build 26120 has now a strange side effect: when I try to add a comment to an empty constraint list, the infamous "fix erros before saving" banner appears and I cannot make it to go away, no matter what constraints I add to the group. Thanks.
-
Ugh. So sorry. Working on it now.
-
OK. 26120 rebuilt with a UI fix and pushed. Update your container and let me know how it goes.
-
@toggledbits all good now. no need to apologize, thanks for your hard work!
-
@toggledbits maybe it's related, but right now I have a similar problem.
Given these groups:
in this case, all are called.
Forum extract - Party Mode false but both branches executed Source: .vs/.tmp/logs/reactor.log Date: 2026-05-05 === A) Sunset flow where both Party Mode OFF and Party Mode ON run === [latest-26120]2026-05-05T18:16:00.192Z <Engine:NOTICE> Starting reaction Lights-Outdoor-On-Sunset<SET>/No vacation (rule-kwulsxqu:S-159bd6va) [latest-26120]2026-05-05T18:16:00.206Z <Engine:NOTICE> Starting reaction Lights-Outdoor-On-Sunset<SET>/No vacation/Party Mode: OFF (rule-kwulsxqu:S-sjf1np7) [latest-26120]2026-05-05T18:16:00.207Z <Engine:INFO> Lights-Outdoor-On-Sunset<SET>/No vacation/Party Mode: OFF all actions completed. [latest-26120]2026-05-05T18:16:00.207Z <Engine:INFO> Enqueueing "G-Lights-Outdoor-On-Sunset" (re-kwulrhc7) [latest-26120]2026-05-05T18:16:00.243Z <Engine:NOTICE> Starting reaction G-Lights-Outdoor-On-Sunset (re-kwulrhc7) [latest-26120]2026-05-05T18:16:00.244Z <Engine:INFO> Engine#1 perform power_switch.on on Switch#zwavejs>89-2 with { } by reaction G-Lights-Outdoor-On-Sunset (re-kwulrhc7) step 2 [latest-26120]2026-05-05T18:16:00.248Z <Engine:NOTICE> Starting reaction Lights-Outdoor-On-Sunset<SET>/No vacation/Party Mode: ON (rule-kwulsxqu:S-je98j75) [latest-26120]2026-05-05T18:16:00.249Z <Engine:NOTICE> Lights-Outdoor-On-Sunset<SET>/No vacation/Party Mode: ON delaying until 1778004965249<5/5/2026, 8:16:05 PM> === B) Party Mode ON continuation triggers PartyMode and On-All scenes === [latest-26120]2026-05-05T18:16:05.250Z <Engine:INFO> Resuming reaction Lights-Outdoor-On-Sunset<SET>/No vacation/Party Mode: ON (rule-kwulsxqu:S-je98j75) from step 2 [latest-26120]2026-05-05T18:16:05.251Z <Engine:INFO> Lights-Outdoor-On-Sunset<SET>/No vacation/Party Mode: ON all actions completed. [latest-26120]2026-05-05T18:16:05.251Z <Engine:INFO> Enqueueing "Lights-Outdoor-On-PartyMode<SET>" (rule-kwulj21d:S) [latest-26120]2026-05-05T18:16:05.271Z <Engine:NOTICE> Starting reaction Lights-Outdoor-On-PartyMode<SET> (rule-kwulj21d:S) [latest-26120]2026-05-05T18:16:05.271Z <Engine:INFO> Lights-Outdoor-On-PartyMode<SET> all actions completed. [latest-26120]2026-05-05T18:16:05.288Z <Engine:INFO> Enqueueing "G-Lights-Outdoor-On-All" (re-kwueqcud) [latest-26120]2026-05-05T18:16:05.303Z <Engine:NOTICE> Starting reaction G-Lights-Outdoor-On-All (re-kwueqcud) [latest-26120]2026-05-05T18:16:05.304Z <Engine:INFO> Engine#1 perform power_switch.on on Switch#zwavejs>169-1 with { } by reaction G-Lights-Outdoor-On-All (re-kwueqcud) step 2 === C) Same Sunset rule run also enters Vacation branch === [latest-26120]2026-05-05T18:16:05.343Z <Engine:NOTICE> Starting reaction Lights-Outdoor-On-Sunset<SET>/Vacation (rule-kwulsxqu:S-159bdlwb) [latest-26120]2026-05-05T18:16:05.343Z <Engine:INFO> Engine#1 perform power_switch.on on Switch#zwavejs>70-1 with { } by reaction Lights-Outdoor-On-Sunset<SET>/Vacation (rule-kwulsxqu:S-159bdlwb) step 1 === D) Later retrigger (18:19) of G-Lights-Outdoor-On-Sunset === [latest-26120]2026-05-05T18:19:27.156Z <Engine:INFO> Enqueueing "G-Lights-Outdoor-On-Sunset" (re-kwulrhc7) [latest-26120]2026-05-05T18:19:27.160Z <Engine:NOTICE> Starting reaction G-Lights-Outdoor-On-Sunset (re-kwulrhc7) [latest-26120]2026-05-05T18:19:27.161Z <Engine:INFO> Engine#1 perform power_switch.on on Switch#zwavejs>89-2 with { } by reaction G-Lights-Outdoor-On-Sunset (re-kwulrhc7) step 2 [latest-26120]2026-05-05T18:19:27.597Z <Engine:NOTICE> Starting reaction G-Lights-Outdoor-On-Sunset/Green Mode (re-kwulrhc7-vxmf6qa) [latest-26120]2026-05-05T18:19:27.598Z <Engine:INFO> Engine#1 perform power_switch.on on Switch#zwavejs>89-1 with { } by reaction G-Lights-Outdoor-On-Sunset/Green Mode (re-kwulrhc7-vxmf6qa) step 1 [latest-26120]2026-05-05T18:19:28.007Z <Engine:INFO> Engine#1 perform power_switch.on on Switch#zwavejs>70-1 with { } by reaction G-Lights-Outdoor-On-Sunset/Green Mode (re-kwulrhc7-vxmf6qa) step 2 [latest-26120]2026-05-05T18:19:28.104Z <Engine:NOTICE> Starting reaction G-Lights-Outdoor-On-Sunset/Terrazzo (re-kwulrhc7-v80fyx6) [latest-26120]2026-05-05T18:19:28.105Z <Engine:INFO> Engine#1 perform power_switch.on on Switch#zwavejs>85-1 with { } by reaction G-Lights-Outdoor-On-Sunset/Terrazzo (re-kwulrhc7-v80fyx6) step 1 === E) MQTT scene-related reevaluations nearby (possible retrigger context) === [latest-26120]2026-05-05T18:19:28.174Z <Rule:INFO> Rule#rule-l20ceesq re-evaluating local variable close for dependency notification from GlobalExpression#scenefrommqtt [latest-26120]2026-05-05T18:19:28.175Z <Rule:INFO> Rule#rule-l3jpxetn re-evaluating local variable allup for dependency notification from GlobalExpression#scenefrommqtt [latest-26120]2026-05-05T18:19:28.270Z <Rule:INFO> Tasks-MQTT-ResetScene (rule-l2vqcz3z in System Tasks) starting rule state evaluation; because predicate-state-changed Predicate#rule-l2vqcz3z/trig [latest-26120]2026-05-05T18:19:28.271Z <Rule:INFO> Tasks-MQTT-ResetScene (rule-l2vqcz3z in System Tasks) evaluated; rule state transition from RESET to 'SET'this rule group is inside another rule group.










