Skip to content

replay-contract-insert-requires-duplicate-policy

A literal INSERT in a replay-named store callable must declare duplicate behavior.

Why

A store callable named ensure, enqueue, record_once, get_or_create, create_if_absent, or insert_if_absent promises that a retry will not create duplicate state.

Fix

Add an explicit conflict action or same-target NOT EXISTS guard. If duplicate failure or append-only insertion is deliberate, add an exact SARJ018 suppression explaining it; rename only when the callable does not promise replay safety.

Examples

Before — flagged Replay-named store callable omits duplicate behavior
app/task_store.py
def ensure_task(cursor, task_id):
cursor.execute("INSERT INTO task (id) VALUES (%s)", (task_id,))
After — preferred Replay-named store callable declares duplicate behavior
app/task_store.py
def ensure_task(cursor, task_id):
cursor.execute(
"INSERT INTO task (id) VALUES (%s) ON CONFLICT DO NOTHING", (task_id,)
)

Formerly: replay-named-store-insert-requires-duplicate-policy, store-insert-requires-on-conflict