Two batches for one change. Compare their events:
- Two methods on one trigger, such as CreateRecord and UpdateRecord, where saving a new record fires both. Guard with a condition on the change you care about.
- Two saves. Every save is an UpdateRecord, and an editor who saves, then publishes, has saved twice. A job that should act once needs a Pre-Event property and a condition that it changed (how).
- Two jobs, often a copy left published after a test, or the same job imported twice under different names.
- A re-run from Batch Logs, or a partner sending the same webhook again.
- A schedule overlapping itself: the next run is queued whether or not the last one finished.
Whatever the cause, the lasting fix is making the job safe to run twice, with an external id and a lookup before any write (idempotency).