# CONFLICT — 409 Conflict

# 409 Conflict

A conflicting operation has already occurred.

## Category

`conflict`

## Retryable?

**Usually no.** Resubmitting the same request will not help — most of these require either a changed request or a change in external state. Read `retryable` on the response rather than assuming: `IDEMPOTENCY_KEY_IN_PROGRESS` is the one 409 on this surface that carries `retryable: true`.

## Common Error Codes

| Code | Description | Action |
|---|---|---|
| `CART_STALE` | The store's menu changed since the cart was built | Start a new cart from the current menu |
| `STORE_PAUSED` | The store is temporarily paused and not accepting orders | Offer another store, or retry after the pause lapses |
| `ENVIRONMENT_MISMATCH` | The store is not available for your account's environment | Check whether you are using sandbox or live credentials |
| `IDEMPOTENCY_KEY_IN_PROGRESS` | An earlier request bearing this `Idempotency-Key` is still in flight | Retry **unchanged, on the same key**, after the interval in the `Retry-After` header. Carries `retryable: true` and `errorCategory: idempotency` |

:::warning[Do not mint a fresh key for `IDEMPOTENCY_KEY_IN_PROGRESS`]
This is the one error where reusing the key is the correct action. The in-flight attempt owns the
outcome of your order — retrying the same key is how you learn what it was. A fresh key presents the
same order to us as a new one, which is exactly how a duplicate order gets placed.
:::


## Error Codes

Each code below is an anchor. The `type` URI on a problem-detail response points straight at it, so
dereferencing `type` lands on the exact code rather than the top of this page.

### CART_STALE

The store's menu changed since the cart was built.

**What to do:** Start a new cart from the current menu.

### STORE_PAUSED

The store is temporarily paused and not accepting orders.

**What to do:** Offer another store, or retry after the pause lapses.

### ENVIRONMENT_MISMATCH

The store is not available for your account's environment.

**What to do:** Check whether you are using sandbox or live credentials.

### IDEMPOTENCY_KEY_IN_PROGRESS

An earlier request bearing this `Idempotency-Key` is still in flight. This is the one 409 on this surface carrying `retryable: true`.

**What to do:** Retry **unchanged, on the same key**, after the interval in the `Retry-After` header. A fresh key here places a duplicate order.

## Example

```json
{
  "type": "https://developer.gett-tech.com/errors/CONFLICT#cart_stale",
  "title": "Bad request",
  "status": 409,
  "detail": "This store's menu changed since your cart was built, so the cart is no longer valid. Start a new cart from the current menu.",
  "instance": "/v1/marketfront/orders/place",
  "requestId": "req_abc123",
  "timestamp": "2026-03-11T14:30:00.000Z",
  "errorCode": "CART_STALE",
  "errorCategory": "conflict",
  "retryable": false
}
```
