rohitg00/ai-engineering-from-scratch · error · ValueError
unknown era: {era}
Error message
unknown era: {era} What it means
Error "unknown era: {era}" thrown in rohitg00/ai-engineering-from-scratch.
Source
Thrown at phases/13-tools-and-protocols/31-mcp-conformance-versioning-and-operations/code/main.py:194
ord(character) < 0x20 or ord(character) > 0x7E for character in value
):
raise ProtocolViolation("unsafe MCP header value must use the Base64 sentinel", -32020)
return value
def validate_request(headers: dict[str, str], body: dict[str, Any], era: str) -> None:
if body.get("jsonrpc") != "2.0" or not isinstance(body.get("method"), str):
raise ProtocolViolation("invalid JSON-RPC request")
params = body.get("params", {})
if not isinstance(params, dict):
raise ProtocolViolation("params must be an object", -32602)
wire_headers = normalized_headers(headers)
if era == "legacy":
if body["method"] != "initialize" and wire_headers.get("mcp-protocol-version") == MODERN_VERSION:
raise ProtocolViolation("modern metadata reached the legacy branch", -32020)
return
if era != "modern":
raise ValueError(f"unknown era: {era}")
metadata = params.get("_meta")
if not isinstance(metadata, dict):
raise ProtocolViolation("modern request is missing params._meta", -32602)
protocol_version = metadata.get(PROTOCOL_VERSION_KEY)
capabilities = metadata.get(CLIENT_CAPABILITIES_KEY)
if not isinstance(protocol_version, str):
raise ProtocolViolation(f"modern request is missing {PROTOCOL_VERSION_KEY}", -32602)
if not isinstance(capabilities, dict):
raise ProtocolViolation(f"modern request is missing {CLIENT_CAPABILITIES_KEY}", -32021)
mirrored = {
"mcp-protocol-version": protocol_version,
"mcp-method": body["method"],
}
name = routing_name(body)
if name is not None:
mirrored["mcp-name"] = nameView 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:194 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/074a044a7021a8a3.
Report an issue: GitHub.