What it requires. In screen flows, DML and action elements must not sit on a path between two screens where the later screen allows back navigation. Either disable Previous on the later screen or move the DML after the final screen.
Why it matters. A user pressing Previous re-runs the path, and the DML fires again: duplicate records, double emails, repeated callouts. The user sees nothing wrong at the time; the data shows it later.
How to fix it. Disable Previous on any screen downstream of a DML element, or restructure the flow so all DML follows the final screen.
Source. Reference implementation: Lightning Flow Scanner, duplicate-dml (MIT)
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.
