---
title: "Amend the live checklist (title, duration, order) for the session's existing tasks; 409 on stale version"
method: PATCH
path: "/class-management/sessions/{id}/tasks"
tags: ["class-management"]
---

# Amend the live checklist (title, duration, order) for the session's existing tasks; 409 on stale version

`PATCH /class-management/sessions/{id}/tasks`

## Request

- Base URL: `https://api.focusbear.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.focusbear.io/class-management/sessions/{id}/tasks`
- Auth: HTTP bearer

Full-set replace of the mutable fields: every existing task id must be listed exactly once. Task rows are updated in place so student completions survive. Emits class-session-tasks-updated and bumps tasks_version; allowlist_version is untouched.

## Path parameters

- `id` string, uuid, required

## Request body

- AmendSessionTasksDto
  - `tasks` AmendSessionTaskDto[], required: Full replacement of the mutable fields for the session's EXISTING task set — every current task must appear exactly once (same simplicity as the allow-list amend). Task rows are updated in place, never recreated, so student completions survive the amendment.
    - `title` string, required
    - `duration_minutes` number
    - `order` number
    - `id` string, uuid, required: Must already belong to the session: mid-session add/delete is out of scope for v1.
  - `expected_tasks_version` number: Optimistic concurrency token: when set and stale, the request fails with 409 Conflict so concurrent teacher tabs don't silently clobber each other.

## Response `200`

- object

---

[API](https://skmtc.dev/focusbear/apis/focusbear-api.md) - [All operations](https://skmtc.dev/focusbear/apis/focusbear-api/llms.txt) - [OpenAPI document](https://skmtc.dev/focusbear/apis/focusbear-api/revisions/3a83a3b9a811?raw)
