[Bug]: JSONRPC error mapping
maeste opened this issue · 2 comments
maeste commented
What happened?
Running the @a2a-project/a2a-tck I got a few discrepancy on JSONRPC error mapping compared to JSONRPC 2.0 spec
Analysis of the issues:
- Test case 0 - Missing jsonrpc field:
- TCK expects: -32600 (Invalid Request) ✅ CORRECT
- SUT returns: -32602 (Invalid params) ❌ INCORRECT
- Verdict: SUT is wrong - missing jsonrpc makes the request invalid per JSON-RPC spec - Test case 3 - Invalid id type:
- TCK expects: -32600 (Invalid Request) ✅ CORRECT
- SUT returns: 500 HTTP error ❌ MAJOR BUG
- Verdict: SUT is wrong - it should return -32600, not crash with 500 - Test case 4 - Invalid params type:
- TCK expects: -32602 (Invalid params) ✅ CORRECT
- SUT returns: -32600 (Invalid Request) ❌ INCORRECT
- Verdict: SUT is wrong - when params is wrong type, it's invalid params, not invalid request
Relevant log output
Code of Conduct
- I agree to follow this project's Code of Conduct
maeste commented
Another issue on canceling task: Incorrect Error Code for Completed Task Cancellation
- What's happening: SUT returns -32004 (operation not supported) when trying to cancel a completed
task - What should happen: According to A2A spec section 8.2, it should return -32002
(TaskNotCancelableError) - Problem: SUT is using wrong error code
maeste commented
Another issue: in "task/get" the paramether "historyLength" is acceppted but ignored