I think this is similar to this bug that was resolved in the past, but my situation is a little different (I think) and I’m seeing unexpected behavior. Model3 has conditions dependent on Model1 and Model2 as follows:
<conditions logic=""> <condition type="modelmerge" value="" field="Id" operator="in" model="Model1" enclosevalueinquotes="true" mergefield="Id" novaluebehavior="noquery"/>
<condition type="modelmerge" value="" field="Id" operator="in" model="Model2" enclosevalueinquotes="true" mergefield="Id" novaluebehavior="noquery"/>
</conditions>
When the models are initially queried and Model2 has rows, the Model3 results are as expected. When I change some filters so that Model2 returns 0 rows, then empty and requery the three models (in order: 1, then 2, then 3), Model3 continues to show the data from the initial query. This is not just a re-rendering issue. I checked the models’ data and SOQL in the javascript console; the list of IDs returned by the first query for Model2 are still in Model 3’s SOQL where clause, despite Model2 being empty.