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.