rohitg00/ai-engineering-from-scratch · error · ProtocolViolation

JSON-RPC request has no response body

Error message

JSON-RPC request has no response body

What it means

Error "JSON-RPC request has no response body" thrown in rohitg00/ai-engineering-from-scratch.

Source

Thrown at phases/13-tools-and-protocols/31-mcp-conformance-versioning-and-operations/code/main.py:447


def run_transcript(case: Transcript) -> CaseResult:
    evidence = redact(
        {
            "headers": case.headers,
            "request": case.request,
            "responseStatus": case.response_status,
            "responseBody": case.response_body,
        }
    )
    try:
        validate_request(case.headers, case.request, case.era)
        if "id" not in case.request:
            expected_status, expected_body = notification_http_outcome(case.request)
            if (case.response_status, case.response_body) != (expected_status, expected_body):
                raise ProtocolViolation("notification received a response body")
        elif case.response_body is None:
            raise ProtocolViolation("JSON-RPC request has no response body")
        else:
            validate_response(
                case.request,
                case.response_status,
                case.response_body,
                case.era,
                set(case.capabilities),
            )
        if case.expected_error_code is not None:
            return CaseResult(case.name, False, "negative case was accepted", digest(evidence))
        return CaseResult(case.name, True, "accepted as expected", digest(evidence))
    except ProtocolViolation as error:
        passed = case.expected_error_code == error.code
        detail = f"rejected with {error.code}: {error}"
        if error.code == -32020:
            try:
                validate_protocol_error_evidence(case, -32020)
            except ProtocolViolation as response_error:

View on GitHub (pinned to 39ea8a1c6d)

When it happens

Trigger: Thrown at phases/13-tools-and-protocols/31-mcp-conformance-versioning-and-operations/code/main.py:447 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of rohitg00/ai-engineering-from-scratch@39ea8a1c6d (2026-08-26). Data as JSON: /api/errors/87ce916b25322289. Report an issue: GitHub.