If the validator crashes mid-block, the same block is reprocessed on restart (allways/validator/event_watcher.py:381-413).
insert_swap_outcome uses INSERT OR REPLACE (fine), but the busy-delta increments double — each replayed event bumps the counter again.
Direction: dedupe by (block, extrinsic_index, event_index), or store an absolute busy count instead of applying deltas.
If the validator crashes mid-block, the same block is reprocessed on restart (allways/validator/event_watcher.py:381-413).
insert_swap_outcomeusesINSERT OR REPLACE(fine), but the busy-delta increments double — each replayed event bumps the counter again.Direction: dedupe by
(block, extrinsic_index, event_index), or store an absolute busy count instead of applying deltas.