retrysafe
← All rules

non-atomic-multi-write

warning

Several database writes on one path run outside a transaction, and at least one is not idempotent.

Why it goes wrong

If the handler fails between the writes, the first is committed and the rest are not. The retry then runs the first write again (duplicating it) or trips over its result.

Safe pattern

Wrap the writes (and the processed-event claim) in one transaction.

Configure

// retrysafe.config.ts
export default defineConfig({
  rules: { "non-atomic-multi-write": "warning" }, // or "off"
});

// or, for one line (a reason is required):
// retrysafe-ignore non-atomic-multi-write -- <why this is safe>