Rule registry · FL-022

Update triggers must gate on changed values

Checked by the Salesforce Flow scan. Severity high.

FL-022HighReliability

What it requires. An after-save flow triggered on update that performs DML must gate its entry on an actual change of the relevant values: trigger conditions set to run only when the record is updated to meet the condition requirements, or an entry formula comparing $Record with $Record__Prior.

Why it matters. Without a change gate, the flow's own record update re-fires the trigger and each firing repeats the DML. Uncontrolled recursion of this kind terminates in a governor limit exception mid-transaction. This is distinct from having entry criteria at all: criteria that never reference prior values do not break the cycle.

How to fix it. Set the trigger to run only when a record is updated to meet the condition requirements, or add an entry formula comparing the fields the flow acts on against $Record__Prior.

Source. Salesforce Architects: Record-Triggered Automation decision guide, Preventing Recursion

Is this rule worth checking?

Votes and comments are published here. We read them, and we publish what we change with the reasoning — a vote does not move a rule on its own.

Every rule we check, every source, and every one we turned down