Fix INVALID_DIAGNOSTIC_INPUT in diagnose_a2a_request

The tool arguments must contain exactly protocolVersion and request. Choose A2A 0.3 or 1.0, not an MCP transport date. Supply the sanitized JSON-RPC body as an object, not a URL, HTTP wrapper or JSON string. The serialized arguments limit is 16384 bytes.

Get a field-level diagnosis

  1. Use your approved MCP client connected to https://silent.aibitious.com/mcp.
  2. Call diagnose_a2a_request with the target protocol version and a sanitized request example.
  3. Apply the listed corrections locally. The returned example is a fixed template to adapt, not an executed repair.

If the tool input is rejected, its error result includes fixed issues with the field to fix and exampleArguments for the selected supported version (otherwise an explicit 1.0 example). Edit your sanitized input locally; do not retry the same rejected request. The example is authored data, not your repaired request. A malformed A2A message inside request is allowed: that is what the diagnostic checks.

Worked example: three version mismatches

This authored example intentionally uses a legacy method, role and part for version 1.0.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "diagnose_a2a_request",
    "arguments": {
      "protocolVersion": "1.0",
      "request": {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "message/send",
        "params": {
          "message": {
            "messageId": "example-1",
            "role": "user",
            "parts": [
              {
                "kind": "data",
                "data": {}
              }
            ]
          }
        }
      }
    }
  }
}

Expected findings: METHOD_VERSION_MISMATCH, ROLE_VERSION_MISMATCH, PART_VERSION_MISMATCH. The v1 template uses SendMessage, ROLE_USER and data without kind.

Silent Door handoff: structured input only

For an authorized repository handoff, send this authored A2A 1.0 template to POST /a2a with Content-Type: application/json and A2A-Version: 1.0. Supply only relative paths and kinds, never file contents, repository URLs or natural-language prompts. A JSON text part with the same entries object also works; prose does not. Adapt locally; this page executes nothing.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "SendMessage",
  "params": {
    "message": {
      "messageId": "example-1",
      "role": "ROLE_USER",
      "parts": [
        {
          "data": {
            "entries": [
              {
                "path": "src/app.py",
                "kind": "file"
              }
            ]
          }
        }
      ]
    }
  }
}

For legacy 0.3 use message/send, role user and kind: data on the single data part; see the complete service examples.

For manual or automated operator checks, send X-Silent-Door-Operator-Test: true. Diagnostic calls have separate usage counters from repository handoffs.

Common errors

Fix the diagnostic tool's own input

Connection instructions · Measured usage · A2A 1.0 specification