Unassign Team
Atomically cancel an active team dispatch on a work order without replacement. All non-terminal linked assignment rows transition to cancelled; terminal rows (completed, cancelled, declined, no_show) are preserved as-is.
Body fields:
- work_order_id (required, UUID): must currently have an active team dispatch (else 422 NO_ACTIVE_TEAM_DISPATCH).
- reason (optional, string max 500): captured in activity log; the team-dispatch row's unassign_reason is set to a low-cardinality system tag (manual_cancel | reassigned | team_deleted) for filtering.
Response meta includes cancelled_assignment_count and preserved_terminal_assignment_count.
Fires (after commit): TeamUnassigned.
Headers
{{tenant_key_name}}
Request
This endpoint expects a multipart form.
reason
Optional: captured in the activity log (max 500 chars).
work_order_id
Required: UUID of the work order. Must currently have an active team dispatch (else 422 NO_ACTIVE_TEAM_DISPATCH).
Response
Successful response

