## TL;DR

Two dedup runs overlapped and merged concurrently. Add a job lock so only one runs at a time, and make merges idempotent.

## Error

```text
two dedup jobs ran at once
```

## Steps

1. Check the scheduler for overlapping triggers Expected: you find the double schedule.
2. Add a distributed lock around the job Expected: only one runs.
3. Kill the overlapping run Expected: the conflict ends.
4. Verify the next scheduled run Expected: it runs alone.

## When to use

- Dedup job double-fired
- Two runs overlapped

## When not to use

- The schedule is fine (then check for manual triggers)
- Overlaps are harmless (then make merges idempotent anyway)

## Tool compatibility

- Job scheduling
- Dedup jobs

## Variant phrasings

### dedup double fired

Add a job lock. Two concurrent merges corrupt data.

### overlapping dedup runs

Same: serialize the job.

## Why it happens

Schedules drift and retries overlap. Agents assume the scheduler guarantees single execution; it does not.

## Edge cases

- Idempotent merges survive overlaps
- Alert on lock contention

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_iKADnqkBYvjK01NDA53HbA
