[Bug]: gRPC errors do not include google.rpc.ErrorInfo
Maintainer antworten meist innerhalb von 2 Tagen
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 45/100
Rechercherichtung
Bei diesem Issue geht es um die gRPC-Fehlerbehandlung im A2A Java SDK. Untersuche die Implementierung des gRPC-Service und die Umwandlung von Fehlern in Statusantworten. Die relevanten Tests befinden sich in tests/compatibility/core_operations/test_error_handling.py und tests/compatibility/grpc/test_status_codes.py. Beginne damit, die Logik für die Fehlerzuordnung zu untersuchen, wahrscheinlich in einem zentralen Fehler-Handler oder Interceptor, und stelle sicher, dass google.rpc.ErrorInfo für A2A-spezifische Fehler zu den Statusdetails hinzugefügt wird. Überprüfe die Korrektur, indem du die bereitgestellten TCK-Tests ausführst.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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
- Vorherrschende Sprache
- Java
- Sterne
- 505
- Forks
- 187
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 22
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus a2aproject/a2a-java
-
fix: handle blank push notification config id consistently across transportsEvtl. vergeben @prachisinghal-1 hat das vor 3 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
a2aproject/a2a-java#1012 · 2 Kommentare · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
a2aproject/a2a-java#464 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Create a sample that demonstrates how to use a shared contextId across multiple tasksEvtl. wieder frei @tanish111 hat das vor 370 Tagen übernommen, und es ist kein Pull Request offen. Offensample
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
a2aproject/a2a-java#375 · 5 Kommentare · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 2 Tagen
-
[Bug]: Blocking message/send loses the final event when the agent emits an event before completingEvtl. vergeben @jeroenbellen hat das vor 11 Tagen übernommen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
a2aproject/a2a-java#1226 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Task state transitions are not trackedEvtl. wieder frei @sumitvairagar hat das vor 9 Tagen übernommen, und es ist kein Pull Request offen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
a2aproject/a2a-java#1222 · 4 Kommentare ·
Maintainer antworten meist innerhalb von 2 Tagen
Alle Issues in a2aproject/a2a-java
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
Maintainer antworten meist innerhalb von 1 Tag
-
Type/Improvement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
ballerina-platform/static-code-analysis-tool#140 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
atomityhq/blog-cms#82 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
ready-for-triage triaged
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
RedHatInsights/notifications-backend#5080 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
eclipse-4diac/4diac-ide#3103 ·
Maintainer antworten meist innerhalb von 1 Tag