Release a thread assignment
cooper_unassign_threadUse this when the assignee is done with a thread, or a worker should release its claim. Requires auth. Same permission as updating thread labels. Inputs: inbox_id (required; inbox id, username, or email), thread_id (required), assignee (optional). When assignee is set, the row is removed only if it is assigned to that handle or the claim has expired. An active claim or a plain assignment held by someone else returns HTTP 409 thread_claimed with assignee and claimed_until. Returns {assignment:null, released:true|false}. released is false when nothing is assigned. That call is idempotent and does not emit an event. A successful release emits thread.unassigned. Unknown thread returns HTTP 404 thread_not_found. Another account's inbox returns inbox_not_found. A bad assignee returns invalid_assignee.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| assignee | No | When set, release only if the thread is assigned to this handle, or the claim has expired. | |
| inbox_id | Yes | Inbox id (inb_…), username, or full email address owned by this key | |
| thread_id | Yes | Thread id (thr_…) to release |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| released | No | False when nothing was assigned. | |
| assignment | No | Always null after release. |