rohitg00/ai-engineering-from-scratch · error · ValueError
Transfer-Encoding is not supported
Error message
Transfer-Encoding is not supported
What it means
Error "Transfer-Encoding is not supported" thrown in rohitg00/ai-engineering-from-scratch.
Source
Thrown at phases/13-tools-and-protocols/09-mcp-transports/code/main.py:244
for name in ROUTING_HEADERS:
if len(get_all(name, [])) > 1:
raise RpcFault(-32020, f"Duplicate routing header: {name}")
def reject_duplicate_origin(headers: Any) -> None:
get_all = getattr(headers, "get_all", None)
if callable(get_all) and len(get_all("Origin", [])) > 1:
raise RpcFault(-32020, "Duplicate Origin header")
def reject_ambiguous_body_framing(headers: Any) -> None:
get_all = getattr(headers, "get_all", None)
if not callable(get_all):
return
if len(get_all("Content-Length", [])) > 1:
raise ValueError("duplicate Content-Length headers are not allowed")
if get_all("Transfer-Encoding", []):
raise ValueError("Transfer-Encoding is not supported")
def dispatch(message: dict[str, Any]) -> dict[str, Any] | None:
if "id" not in message:
return None
request_id = message["id"]
try:
version = validate_request_structure(message)
validate_supported_version(version)
method = message["method"]
params = message["params"]
if method == "server/discover":
result = complete(
{
"supportedVersions": SUPPORTED_VERSIONS.copy(),
"capabilities": SERVER_CAPABILITIES.copy(),
"instructions": "Call ping for a transport health check.",
},View on GitHub (pinned to 39ea8a1c6d)
When it happens
Trigger: Thrown at phases/13-tools-and-protocols/09-mcp-transports/code/main.py:244 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/1ce6d7aebcc6ab41.
Report an issue: GitHub.