[Bug]: gRPC errors do not include google.rpc.ErrorInfo
Les mainteneurs répondent en général sous 2 jours
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 45/100
Piste de recherche
Le problème concerne la gestion des erreurs gRPC dans le A2A Java SDK. Examinez l’implémentation du service gRPC et la manière dont les erreurs sont converties en réponses d’état. Les tests concernés se trouvent dans tests/compatibility/core_operations/test_error_handling.py et tests/compatibility/grpc/test_status_codes.py. Commencez par examiner la logique de mappage des erreurs, probablement dans un gestionnaire d’erreurs ou un interceptor central, et assurez-vous que google.rpc.ErrorInfo est ajouté aux détails de l’état pour les erreurs spécifiques à A2A. Vérifiez la correction en exécutant les tests TCK fournis.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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
- Langage dominant
- Java
- Étoiles
- 505
- Forks
- 187
- Merge moyen
- 1 j 19 h
- PR mergées (30 j)
- 22
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de a2aproject/a2a-java
-
fix: handle blank push notification config id consistently across transportsPeut-être pris @prachisinghal-1 l’a pris il y a 3 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
a2aproject/a2a-java#1012 · 2 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
a2aproject/a2a-java#464 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
Create a sample that demonstrates how to use a shared contextId across multiple tasksPeut-être à nouveau libre @tanish111 l’a pris il y a 370 jours, et aucune pull request n’est ouverte. Ouvertesample
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
a2aproject/a2a-java#375 · 5 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
-
[Bug]: Blocking message/send loses the final event when the agent emits an event before completingPeut-être pris @jeroenbellen l’a pris il y a 11 jours. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
a2aproject/a2a-java#1226 ·
Les mainteneurs répondent en général sous 2 jours
-
Task state transitions are not trackedPeut-être à nouveau libre @sumitvairagar l’a pris il y a 9 jours, et aucune pull request n’est ouverte. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
a2aproject/a2a-java#1222 · 4 commentaires ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de a2aproject/a2a-java
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
geonetwork/core-geonetwork#9592 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 63/100
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
apache/rocketmq-dashboard#7361 ·
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
higress-group/himarket#358 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
Les mainteneurs répondent en général sous 1 jour