Reactor build 26116: empty group reaction
-
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.
-
Build 26127 just posted has a small change that hit the issue responsible for the misbehavior. If not, there's additional logging that may help point me in the right direction.
-
@toggledbits unfortunately, this is still occurring with the new build. here's the log:
Reactor Support Report - Outdoor Lights Sunset Logic
1) Dev instrumentation context before event
[latest-26127]2026-05-07T18:06:07.950Z <Engine:INFO> Engine#1 performing startup eval of global partymode [latest-26127]2026-05-07T18:07:09.232Z <Rule:NOTICE> Lights-Outdoor-On-Sunset (rule-kwulsxqu in Lights-Outdoor) configuration changed; reloading [latest-26127]2026-05-07T18:07:09.232Z <Engine:INFO> Engine#1 rule Rule#rule-kwulsxqu changed; reloading and restarting it2) Sunset rule starts and enters No vacation
[latest-26127]2026-05-07T18:07:37.303Z <Engine:INFO> Enqueueing "Lights-Outdoor-On-Sunset<SET>" (rule-kwulsxqu:S) [latest-26127]2026-05-07T18:07:37.307Z <Engine:NOTICE> Starting reaction Lights-Outdoor-On-Sunset<SET> (rule-kwulsxqu:S) [latest-26127]2026-05-07T18:07:37.310Z <Rule:INFO> Rule#rule-kwulsxqu evaluating reaction group constraints No vacation (rule-kwulsxqu:S-159bdlwb-cons) [latest-26127]2026-05-07T18:07:37.319Z <Rule:INFO> Rule#rule-kwulsxqu reaction group No vacation (rule-kwulsxqu:S-159bdlwb-cons) constraints result=true3) Party Mode OFF evaluated true and executed
[latest-26127]2026-05-07T18:07:37.334Z <Rule:INFO> Rule#rule-kwulsxqu evaluating reaction group constraints Party Mode: OFF (rule-kwulsxqu:S-sjf1np7-cons) [latest-26127]2026-05-07T18:07:37.337Z <Rule:INFO> Rule#rule-kwulsxqu reaction group Party Mode: OFF (rule-kwulsxqu:S-sjf1np7-cons) constraints result=true [latest-26127]2026-05-07T18:07:37.353Z <Engine:NOTICE> Starting reaction Lights-Outdoor-On-Sunset<SET>/No vacation/Party Mode: OFF (rule-kwulsxqu:S-sjf1np7)4) Party Mode ON also evaluated true in same flow
[latest-26127]2026-05-07T18:08:17.332Z <Rule:INFO> Rule#rule-kwulsxqu evaluating reaction group constraints Party Mode: ON (rule-kwulsxqu:S-sjf1np7-cons) [latest-26127]2026-05-07T18:08:17.334Z <Rule:INFO> Rule#rule-kwulsxqu reaction group Party Mode: ON (rule-kwulsxqu:S-sjf1np7-cons) constraints result=true [latest-26127]2026-05-07T18:08:17.358Z <Engine:NOTICE> Starting reaction Lights-Outdoor-On-Sunset<SET>/No vacation/Party Mode: ON (rule-kwulsxqu:S-je98j75)5) Follow-up party path triggers On-All scene
[latest-26127]2026-05-07T18:08:22.377Z <Engine:INFO> Enqueueing "Lights-Outdoor-On-PartyMode<SET>" (rule-kwulj21d:S) [latest-26127]2026-05-07T18:08:22.508Z <Engine:NOTICE> Starting reaction Lights-Outdoor-On-PartyMode<SET> (rule-kwulj21d:S) [latest-26127]2026-05-07T18:08:22.525Z <Engine:INFO> Enqueueing "G-Lights-Outdoor-On-All" (re-kwueqcud)6) Same top-level run also executes Vacation branch
[latest-26127]2026-05-07T18:08:22.585Z <Rule:INFO> Rule#rule-kwulsxqu evaluating reaction group constraints Vacation (rule-kwulsxqu:S-159bdlwb-cons) [latest-26127]2026-05-07T18:08:22.586Z <Rule:INFO> Rule#rule-kwulsxqu reaction group Vacation (rule-kwulsxqu:S-159bdlwb-cons) constraints result=true [latest-26127]2026-05-07T18:08:22.603Z <Engine:NOTICE> Starting reaction Lights-Outdoor-On-Sunset<SET>/Vacation (rule-kwulsxqu:S-159bdlwb)Dev Instrumentation Lines (Most Relevant)
These are the strongest lines showing the engine handling multiple conflicting groups as
true:[latest-26127]2026-05-07T18:07:37.320Z <Engine:INFO> Engine#1 reaction rule-kwulsxqu:S handling group No vacation (rule-kwulsxqu:S-159bd6va) constraints result state true [latest-26127]2026-05-07T18:07:37.339Z <Engine:INFO> Engine#1 reaction rule-kwulsxqu:S-159bd6va handling group Party Mode: OFF (rule-kwulsxqu:S-sjf1np7) constraints result state true [latest-26127]2026-05-07T18:08:17.334Z <Engine:INFO> Engine#1 reaction rule-kwulsxqu:S-159bd6va handling group Party Mode: ON (rule-kwulsxqu:S-je98j75) constraints result state true [latest-26127]2026-05-07T18:08:22.587Z <Engine:INFO> Engine#1 reaction rule-kwulsxqu:S handling group Vacation (rule-kwulsxqu:S-159bdlwb) constraints result state trueAdditional Context
[latest-26127]2026-05-07T18:08:22.553Z <Engine:INFO> Engine#1 perform x_mqtt.publish ... topic "dbdomoticz/cmd/sceniclightsprogram" ... by reaction Lights-Outdoor-On-Sunset<SET>/No vacation [latest-26127]2026-05-07T18:08:22.372Z <Rule:INFO> Rule#rule-l20ceesq re-evaluating local variable close for dependency notification from GlobalExpression#scenefrommqtt [latest-26127]2026-05-07T18:08:22.374Z <Rule:INFO> Rule#rule-l3jpxetn re-evaluating local variable allup for dependency notification from GlobalExpression#scenefrommqtt -
OK. Please turn on log level 5 for that rule only. Run the rule to show the issue, and upload the entire Rule log file as well as reactor.log, the rule storage files (dval and json). Link for upload in your DMs










