Data Table Lookup triggers twice / Insert causes second evaluation of conditional branches

Hi everyone,

I’m currently testing the new Data Tables feature and ran into behaviour that looks unexpected — possibly a bug, or I may be misunderstanding how the execution model works with Data Tables.

What happens

I have a workflow that receives a webhook, runs input validation, and then performs two parallel checks:

  • If row exists –> update path

  • If row does not exist –> insert path

Both branches are fed directly from the same input node (InputValidation).

The issue

Even when the table is completely empty, the following happens:

  1. “Row does not exist” branch runs (correct)

  2. A new row is inserted (correct)

  3. After the insert, the “row exists” branch suddenly executes as well
    – even though it should only evaluate based on the original input item
    – and even though the table was empty at the beginning of the workflow

It looks as if the insert action causes a second evaluation of the other conditional branch, resulting in the workflow taking both branches during the same single webhook execution.

Expected behaviour

Only one of the two branches should run, based solely on the state of the Data Table at the time the input arrives.

Question

Is this expected (due to how items propagate in parallel branches), or is this a bug?
If this is expected, what is the recommended pattern to safely perform “exists / not exists” branching without race-like behaviour?

Thanks!