# conflict

> 409 Conflict. The request doesn’t fit the thing’s current state, or another request with the same Idempotency-Key is still running.

| Status       | Code       | Retry?          |
| ------------ | ---------- | --------------- |
| 409 Conflict | `conflict` | After fixing it |

## What it means

The request doesn’t fit the thing’s current state, or another request with the same Idempotency-Key is still running.

## Common causes

- Canceling a text that already went.
- Editing a text that is no longer scheduled.
- Settling a text that isn’t unconfirmed.
- Retrying with an Idempotency-Key whose first request hasn’t finished.

## What to do

Read the current state and try again.

## Can I retry it?

Only after you fix what the message names. Until then the same request gets the same answer.

## What the answer looks like

The answer, `409`:

```json
{
  "error": {
    "code": "conflict",
    "message": "That text was already sent, so it can’t be canceled.",
    "hint": "Read the current state and try again.",
    "doc_url": "https://usebluebot.com/docs/errors/conflict",
    "request_id": "req_1Hq2LxW9cVbN3mKpRtYs0a"
  }
}
```

Branch on `code`, which never changes. `message` and `hint` are written for people and may be reworded. Quote `request_id` when you write to support.

## Related

- [Errors](https://usebluebot.com/docs/errors): the envelope and every code
- [Idempotency](https://usebluebot.com/docs/concepts/idempotency): retrying without sending twice
- [Limits](https://usebluebot.com/docs/limits): every cap and what happens when you reach it
