# June 11, 2026 

** June 11, 2026 Karbon API release adds five new fields to the PATCH Work Items endpoint and starts returning 409 Conflict on optimistic-concurrency races instead of a generic 500. **
---

## More fields can be updated with PATCH on Work Items

`PATCH /v3/WorkItems/{WorkItemKey}` previously only accepted `Description` and `DeadlineDate`. It now also accepts:

| Property               | Notes                                                                                                         |
| ---------------------- | ------------------------------------------------------------------------------------------------------------- |
| `Title`                | Must be non-empty and at most 200 characters when included.                                                   |
| `StartDate`            | ISO 8601 date or date-time. Must be non-null when included.                                                   |
| `DueDate`              | ISO 8601 date or date-time. Pass `null` to clear an existing due date.                                        |
| `AssigneeEmailAddress` | The email of a Karbon user. Validated against existing users — unknown values return a `400`.                 |
| `WorkType`             | Validated against the work types configured on the account — unknown values return a `400`.                   |

For example, to update just the title and assignee:

```http
PATCH /v3/WorkItems/2LPSrkzbYrn4
Content-Type: application/json

{
  "Title": "Q2 review prep",
  "AssigneeEmailAddress": "alex@example.com"
}
```

Any other properties in the request body still return a `400` — use `PUT /v3/WorkItems/{WorkItemKey}` for broader updates.

## Concurrent updates now return 409 Conflict

When two requests race to update the same record, the API now returns `409 Conflict` instead, with a coded body:

```json
{
  "error": {
    "code": "4020",
    "message": "The resource was modified by another request. Refetch the latest version and retry."
  }
}
```

This can affect any `PUT` or `PATCH` requests for the same URL that are run concurrenntly. Treat a `409` error as retryable — but you may wish to fetch the current state of the resource before trying again.
