# conflict (HTTP 409)

Fix: re-read the resource and rebase your change. conflict (HTTP 409) means the resource was modified since you last read it.

- **HTTP status:** 409
- **Problem type URI:** https://nowgetitdone.com/docs/api/problems/conflict

## What it means

The resource you tried to update has been modified since the timestamp you
passed in `base_updated_at`. Another agent or user wrote to it between your
read and your update, and applying your change would silently overwrite theirs.

## Likely causes

- Two agents or users editing the same workspace note at the same time.
- A stale `updated_at` value held in memory across multiple operations.
- A retry of a failed update where the first attempt actually succeeded.

## How to fix

- Re-read the resource (e.g. `GET /v1/notes/{note_id}`) to get the current
  body and the latest `updated_at`.
- Rebase your change on the current content.
- Retry with the new `base_updated_at` value.
- For append-only changes, consider using the append endpoint instead — it
  serializes concurrent writes under a row lock and never conflicts.

## Example problem+json

```json
{
    "type": "https://nowgetitdone.com/docs/api/problems/conflict",
    "title": "Conflict",
    "status": 409,
    "code": "conflict",
    "detail": "The note has been modified since you last read it. Re-read the note and apply your change to the current version.",
    "request_id": "req_a1b2c3d4"
}
```

## Related

- [API reference](/docs/api-reference/notes/updateNote)
