From a2a-multi-agent
Implements A2A error handling: JSON-RPC errors, A2A-specific codes, task failures, retries, and graceful degradation. For building robust A2A agents.
npx claudepluginhub orcaqubits/agentic-commerce-skills-plugins --plugin a2a-multi-agentThis skill is limited to using the following tools:
**Fetch live docs**:
Acquire memory dumps from live systems/VMs and analyze with Volatility 3 for processes, networks, DLLs, injections in incident response or malware hunts.
Provides x86-64/ARM disassembly patterns, calling conventions, control flow recognition for static analysis of executables and compiled binaries.
Identifies anti-debugging checks like IsDebuggerPresent, NtQueryInformationProcess in Windows binaries; suggests bypasses via patches/hooks/scripts for malware analysis, CTFs, authorized RE.
Fetch live docs:
https://a2a-protocol.org/latest/specification/ for the error handling sectionsite:github.com a2aproject A2A error codes for error code definitionssite:github.com a2aproject a2a-samples error for error handling examplesA2A has three categories of errors:
failed)All errors follow the JSON-RPC 2.0 error response format:
{
"jsonrpc": "2.0",
"id": "request-id",
"error": {
"code": -32600,
"message": "Invalid Request",
"data": { "details": "..." }
}
}
| Code | Name | Meaning |
|---|---|---|
-32700 | Parse error | Invalid JSON |
-32600 | Invalid request | Not a valid JSON-RPC request |
-32601 | Method not found | Method doesn't exist or isn't supported |
-32602 | Invalid params | Method parameters are invalid |
-32603 | Internal error | Server internal error |
| Code | Name | Meaning |
|---|---|---|
-32001 | TaskNotFoundError | The referenced taskId doesn't exist |
-32002 | TaskNotCancelableError | Task is in a state that can't be canceled (terminal state) |
-32003 | PushNotificationNotSupportedError | Agent doesn't support push notifications |
-32004 | UnsupportedOperationError | The requested operation is not supported |
-32005 | ContentTypeNotSupportedError | Client's accepted output modes don't match agent's capabilities |
-32006 | InvalidAgentResponseError | The agent returned an invalid or malformed response |
-32007 | ExtendedAgentCardNotConfiguredError | Extended Agent Card is not configured |
-32008 | ExtensionSupportRequiredError | A required extension is not supported |
-32009 | VersionNotSupportedError | The requested protocol version is not supported |
Important distinction:
failed state — the request was valid but the task's processing failedExample: If a client sends message/send with invalid JSON → -32700 (protocol error). If a client sends a valid message but the agent's LLM call fails → task state becomes failed with an error message.
The server should:
-32600/-32700 for malformed requests-32601 for unsupported methods-32602 for invalid params-32001 for unknown task IDs-32003/-32005 for unsupported features-32007 if extended Agent Card is not configured-32603 for unexpected server errorsfailed for task-level processing errorsThe client should:
error field vs result field-32603 (internal error) may be retryable-32601 (method not found) won't succeed on retryfailed and read the error message| Error Code | Retryable? | Strategy |
|---|---|---|
-32700 | No | Fix the request |
-32600 | No | Fix the request |
-32601 | No | Method not available on this agent |
-32602 | No | Fix the parameters |
-32603 | Yes | Exponential backoff, max 3 retries |
-32001 | No | Task doesn't exist |
-32002 | No | Task can't be canceled |
-32005 | No | Content type mismatch |
-32007 | No | Extended Agent Card not configured |
data field in JSON-RPC errors for additional debugging contextfailed with a descriptive message when processing failsFetch the specification for the complete list of error codes, their semantics, and any error handling requirements before implementing.