Task lifecycle (A2A)
The path an A2A task takes from creation to an end state: submitted, working, paused for input or authorization, then completed, failed, canceled or rejected.
The task lifecycle is the sequence of states an A2A task moves through, from the moment an agent creates it in response to a message until it reaches one of four terminal states, after which it can never change again.
Message or task. Not every exchange becomes a task. An agent can answer a message with a single Message and keep no state, or it can create a Task with a server-generated id and track the work. Once an agent has created a task, later responses about that work are Task objects.
The stages.
- Created:
TASK_STATE_SUBMITTEDmeans the agent has acknowledged the task, andTASK_STATE_WORKINGmeans it is processing. - Interrupted:
TASK_STATE_INPUT_REQUIREDwaits for more input from the client.TASK_STATE_AUTH_REQUIREDwaits for authorization, often delivered out of band. The client continues by sending a message with the sametaskId. - Terminal:
TASK_STATE_COMPLETED,TASK_STATE_FAILED,TASK_STATE_CANCELEDorTASK_STATE_REJECTED. An agent can reject a task when it is created or later, once it decides it cannot or will not proceed.
Rules that follow.
- A blocking
SendMessage, the default, returns once the task is terminal or interrupted. WithreturnImmediatelyset, it returns straight after creating the task. - Messages sent to a terminal task fail with
UnsupportedOperationError, andCancelTaskon one fails withTaskNotCancelableError. - A refinement or follow-up starts a new task in the same
contextId, and can point back withreferenceTaskIds. The finished task stays immutable, which keeps every artifact traceable to one unit of work. - Clients follow progress by polling
GetTask, by streaming, or through push notifications.
An interrupted task, illustrative:
{
"id": "5f1c2d9e-8b7a-4e3c-9d21-6a0b4c7e2f13",
"contextId": "ctx-7",
"status": {
"state": "TASK_STATE_INPUT_REQUIRED",
"message": {
"messageId": "a9e4b1c2-7d3f-4e8a-b6c5-0f2d1e3a4b5c",
"role": "ROLE_AGENT",
"parts": [{"text": "Which delivery address should I use?"}]
},
"timestamp": "2026-09-26T14:03:11.482Z"
}
}
Neighbouring terms. Task state is the enum value at each step, and a terminal state is one of the four end points.
Sources
- A2A documentation: Life of a Task (accessed )
- A2A protocol definition (a2a.proto): TaskState, Task (accessed )
- A2A Protocol Specification, section 3.1: Core Operations (Send Message, Cancel Task) (accessed )
- A2A Protocol Specification, section 3.2.2: SendMessageConfiguration (execution mode) (accessed )
- A2A Protocol Specification, section 3.4: Multi-Turn Interactions (accessed )
- A2A Protocol Specification, section 3.5: Task Update Delivery Mechanisms (accessed )