[Bug]: CancelTaskRequest.metadata never reaches AgentExecutor.cancel
Los mantenedores suelen responder en 2 días
@muscariello ya está trabajando en esto.
Desde el 2/11/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
What happened?
CancelTaskRequest has a metadata field (a2a_pb2.pyi; the REST mapping sends the whole request as the body, post: "/tasks/{id=*}:cancel", body: "*" in a2a.proto), but nothing on the server hands it to AgentExecutor.cancel:
RestDispatcher.on_cancel_task(src/a2a/server/routes/rest_dispatcher.py) buildsCancelTaskRequest(id=task_id)and does not read the body.- On every binding,
on_cancel_taskinDefaultRequestHandlerV2reads onlyparams.id, and theRequestContextgiven tocancelhas no request (request=Noneindefault_request_handler.py, no request inActiveTask.cancel). Socontext.metadatais{}for a cancel, while forSendMessageit returns the request's metadata.
A caller's {"metadata": {...}} therefore never reaches the executor, whichever transport it uses. The Go SDK (gRPC) and the .NET SDK (gRPC and JSON-RPC) do pass it to the executor; only their REST bindings drop it.
Expected: context.metadata of a cancel holds the request's metadata. For REST, decode the body into CancelTaskRequest and keep the id from the path.
Read from the source at 11f1116 (v1.3.0 + 12 commits); I did not run it.
Relevant log output
n/a (found by reading the source)
Code of Conduct
- I agree to follow this project's Code of Conduct
- Lenguaje dominante
- Python
- Estrellas
- 2.2k
- Forks
- 528
- Merge medio
- 3 d 17 h
- PR fusionados (30 d)
- 43
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de a2aproject/a2a-python
-
[Bug]: `A2A-Version` validation ignores minor versions and the query parameterPosiblemente ocupada @rohityan la tomó hace 69 días. Abiertocomponent: server status:awaiting response
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
a2aproject/a2a-python#1204 · 3 comentarios · 1 asignado ·
Los mantenedores suelen responder en 2 días
-
[Bug]: REST task/request id sanitizationPosiblemente ocupada @Linux2010 la tomó hace 128 días. Abiertomaintainers-only
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
a2aproject/a2a-python#805 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
[Feat]: Add a task-state-invariants agent skill for sibling-surface propagationPosiblemente ocupada @Linux2010 la tomó hoy. Abiertocomponent: tooling status:awaiting response
a2aproject/a2a-python#1413 · 3 comentarios · 1 asignado ·
Los mantenedores suelen responder en 2 días
-
[Bug]: taskId-only continuation still fails required contextId inference in SDK 1.3.0 (follow-up to #1206)Posiblemente ocupada @rohityan la tomó hace 1 día. Abiertocomponent: server status:awaiting response
a2aproject/a2a-python#1411 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 2 días
-
[Feat]: Add a PermissionDenied server error with HTTP 403 and gRPC PERMISSION_DENIED mappingsPosiblemente ocupada @Iwaniukooo11 la tomó hoy. Abiertocomponent: core status: needs review
a2aproject/a2a-python#1410 · 2 comentarios · 2 asignados ·
Los mantenedores suelen responder en 2 días
Todos los issues de a2aproject/a2a-python
Issues similares
-
cost:cheap practicality:seen-in-the-wild severity:medium
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
fairagro/m4.2_advanced_middleware_api#620 ·
Los mantenedores suelen responder en 1 día
-
area:security effort:S priority:P2 provider:local-libvirt status:ready type:docs
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
randomparity/kdive#3495 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
microsoft/markitdown#2820 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 2 días