insert-requires-replay-policy
Every INSERT must declare replay-safe upsert behavior or explicitly document intentional insert-only semantics.
Why
Retries happen in migrations, jobs, commands, and application requests. An INSERT with no declared conflict behavior can duplicate state or turn a safe retry into a uniqueness failure.
Fix
Prefer ON CONFLICT with an explicit DO NOTHING or DO UPDATE action. If duplicate failure is the intended contract outside migrations, add an exact SARJ105 suppression on the INSERT line explaining why. Migration SQL must declare an executable replay policy.
Examples
INSERT INTO live.planSELECT idFROM pendingWHERE NOT EXISTS ( SELECT 1 FROM archive.plan WHERE id = pending.id );INSERT INTO live.planSELECT idFROM pendingWHERE NOT EXISTS ( SELECT 1 FROM live.plan WHERE id = pending.id );INSERT INTO plan (name)VALUES ('free');INSERT INTO plan (name)VALUES ('free')ON CONFLICT (name) DO NOTHING;Formerly: insert-requires-on-conflict