[Bug]: gRPC errors do not include google.rpc.ErrorInfo
Mantenedores costumam responder em até 2 dias
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 45/100
Direção de pesquisa
A issue trata do tratamento de erros gRPC no A2A Java SDK. Examine a implementação do serviço gRPC e como os erros são convertidos em respostas de status. Os testes relevantes estão em tests/compatibility/core_operations/test_error_handling.py e tests/compatibility/grpc/test_status_codes.py. Comece examinando a lógica de mapeamento de erros, provavelmente em um manipulador de erros ou interceptor central, e certifique-se de que google.rpc.ErrorInfo seja adicionado aos detalhes do status para erros específicos do A2A. Verifique a correção executando os testes TCK fornecidos.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
What happened?
Summary
gRPC errors from the SUT do not include google.rpc.ErrorInfo in the status details, which is required by the A2A specification for all A2A-specific errors.
Requirement
- ID: GRPC-ERR-001
- Section: 10.6 — A2A errors include ErrorInfo in status details
- Level: MUST
- Spec: https://github.com/a2aproject/A2A/blob/0833a5f5fd1b715519c0aecf9e3055e3f9f38089/docs/specification.md#106-error-handling
Specification
For A2A-specific errors, implementations MUST include a
google.rpc.ErrorInfomessage in thestatus.detailsarray with:
reason: The A2A error type in UPPER_SNAKE_CASE without the "Error" suffix (e.g.,TASK_NOT_FOUND)domain: Set to"a2a-protocol.org"metadata: Optional map of additional error context
Expected behavior
When the SUT returns an A2A-specific error (e.g., TaskNotFoundError), the gRPC response should include a google.rpc.Status with a google.rpc.ErrorInfo message in the details array, encoded in the grpc-status-details-bin trailing metadata. The ErrorInfo should have reason set to the error type in UPPER_SNAKE_CASE (e.g., TASK_NOT_FOUND) and domain set to "a2a-protocol.org".
Actual behavior
The SUT returns a plain gRPC NOT_FOUND status with a message string but does not include google.rpc.ErrorInfo in the status details. The grpc-status-details-bin trailing metadata is missing or does not contain an ErrorInfo entry.
Reproducer
# Trigger TaskNotFoundError by requesting a non-existent task
grpcurl -plaintext -d '{"id": "tck-nonexistent-task-001"}' \
localhost:9999 lf.a2a.v1.A2AService/GetTask
# Expected: gRPC NOT_FOUND with google.rpc.ErrorInfo in status.details:
# reason: "TASK_NOT_FOUND"
# domain: "a2a-protocol.org"
#
# Actual: gRPC NOT_FOUND without ErrorInfo in grpc-status-details-bin
TCK test
tests/compatibility/core_operations/test_error_handling.py::TestGrpcErrorStructure::test_grpc_error_for_nonexistent_tasktests/compatibility/grpc/test_status_codes.py::TestGrpcErrorInfo::test_error_info_in_status_details
Relevant log output
Code of Conduct
- I agree to follow this project's Code of Conduct
- Linguagem predominante
- Java
- Estrelas
- 507
- Forks
- 192
- Merge médio
- 3d 8h
- PRs com merge (30d)
- 23
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de a2aproject/a2a-java
-
fix: handle blank push notification config id consistently across transportsTalvez já em andamento @prachisinghal-1 assumiu há 7 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
a2aproject/a2a-java#1012 · 2 comentários · 1 responsável ·
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
a2aproject/a2a-java#464 · 1 comentário ·
Mantenedores costumam responder em até 2 dias
-
Create a sample that demonstrates how to use a shared contextId across multiple tasksTalvez livre de novo @tanish111 assumiu há 374 dias e não há nenhum pull request aberto. Abertasample
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
a2aproject/a2a-java#375 · 5 comentários · 1 responsável ·
Mantenedores costumam responder em até 2 dias
-
Task state transitions are not trackedTalvez livre de novo @sumitvairagar assumiu há 13 dias e não há nenhum pull request aberto. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
a2aproject/a2a-java#1222 · 4 comentários ·
Mantenedores costumam responder em até 2 dias
-
No structured payload loggingTalvez já em andamento @katepallewarprathmesh-sketch assumiu há 11 dias. Aberta
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 18/100
a2aproject/a2a-java#1221 · 1 comentário · 1 responsável ·
Mantenedores costumam responder em até 2 dias
Todas as issues de a2aproject/a2a-java
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
Mantenedores costumam responder em até 1 dia
-
documentation good first issue priority: low
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 78/100
Gautam-aman/CODOVYN#52 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100
ControlSystemStudio/phoebus#3998 ·
Mantenedores costumam responder em até 1 dia
-
bug/错误
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 64/100
FCL-Team/FoldCraftLauncher#1982 · 2 comentários ·
Mantenedores costumam responder em até 1 dia