Agent teams: TaskUpdate owner assignment sends undocumented task_assignment self-notification

Resolved 💬 2 comments Opened Feb 18, 2026 by cdubiel08 Closed Mar 18, 2026

Description

When a teammate in an agent team calls TaskUpdate and the owner field is set (either explicitly or via auto-assignment), the SDK sends an undocumented task_assignment message to the owner's inbox. When the owner is the calling agent itself (the standard self-claim pattern), this becomes a self-notification that wastes a turn.

Steps to Reproduce

  1. Create a team with TeamCreate
  2. Create a task with TaskCreate
  3. Spawn a teammate
  4. Have the teammate claim the task: TaskUpdate(taskId="1", status="in_progress", owner="worker")
  5. The teammate receives a task_assignment message in its inbox from itself:
{
  "type": "task_assignment",
  "taskId": "1",
  "subject": "...",
  "assignedBy": "worker",
  "timestamp": "..."
}

This notification arrives asynchronously (typically 5-10 seconds after the TaskUpdate call) and consumes an extra agent turn to process.

Key Findings from Testing

  • All claim patterns trigger it: Explicit owner, no owner (auto-assigned), metadata-based, description-based — the SDK auto-assigns owner on every in_progress transition regardless of parameters
  • The notification is asynchronous: It does NOT appear in the TaskUpdate tool response. It arrives later as a queued teammate-message in the agent's inbox
  • assignedBy equals the recipient: The agent receives a notification about its own action
  • N tasks = N wasted turns: Each claim generates one self-notification, each costing latency + tokens
  • No client-side workaround: Since the SDK auto-assigns owner, there's no parameter combination that avoids the notification

Expected Behavior

When an agent sets itself as owner of a task (or is auto-assigned), the SDK should NOT send a task_assignment notification back to that same agent. The agent already knows about the assignment — it just made it.

Suggested fix: Filter notifications where assignedBy === recipient.

Additional Context

  • The SDK's own TaskList tool documentation instructs teammates to "Claim an available task using TaskUpdate (set owner to your name)" — this is the pattern that causes the self-notification
  • The task_assignment message type is not documented in any tool description visible to agents
  • The TaskUpdate tool response includes a helpful "Task completed. Call TaskList now..." hint which is working as intended — this issue is only about the separate inbox notification

Environment

  • Claude Code version: latest as of 2026-02-17
  • Model: claude-opus-4-6
  • OS: Linux (WSL2)
  • Agent teams enabled via CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗