{"record":{"id":"074a044a7021a8a3","repo":"rohitg00/ai-engineering-from-scratch","slug":"unknown-era-era","errorCode":null,"errorMessage":"unknown era: {era}","messagePattern":"unknown era: (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"phases/13-tools-and-protocols/31-mcp-conformance-versioning-and-operations/code/main.py","lineNumber":194,"sourceCode":"        ord(character) < 0x20 or ord(character) > 0x7E for character in value\n    ):\n        raise ProtocolViolation(\"unsafe MCP header value must use the Base64 sentinel\", -32020)\n    return value\n\n\ndef validate_request(headers: dict[str, str], body: dict[str, Any], era: str) -> None:\n    if body.get(\"jsonrpc\") != \"2.0\" or not isinstance(body.get(\"method\"), str):\n        raise ProtocolViolation(\"invalid JSON-RPC request\")\n    params = body.get(\"params\", {})\n    if not isinstance(params, dict):\n        raise ProtocolViolation(\"params must be an object\", -32602)\n    wire_headers = normalized_headers(headers)\n    if era == \"legacy\":\n        if body[\"method\"] != \"initialize\" and wire_headers.get(\"mcp-protocol-version\") == MODERN_VERSION:\n            raise ProtocolViolation(\"modern metadata reached the legacy branch\", -32020)\n        return\n    if era != \"modern\":\n        raise ValueError(f\"unknown era: {era}\")\n\n    metadata = params.get(\"_meta\")\n    if not isinstance(metadata, dict):\n        raise ProtocolViolation(\"modern request is missing params._meta\", -32602)\n    protocol_version = metadata.get(PROTOCOL_VERSION_KEY)\n    capabilities = metadata.get(CLIENT_CAPABILITIES_KEY)\n    if not isinstance(protocol_version, str):\n        raise ProtocolViolation(f\"modern request is missing {PROTOCOL_VERSION_KEY}\", -32602)\n    if not isinstance(capabilities, dict):\n        raise ProtocolViolation(f\"modern request is missing {CLIENT_CAPABILITIES_KEY}\", -32021)\n\n    mirrored = {\n        \"mcp-protocol-version\": protocol_version,\n        \"mcp-method\": body[\"method\"],\n    }\n    name = routing_name(body)\n    if name is not None:\n        mirrored[\"mcp-name\"] = name","sourceCodeStart":176,"sourceCodeEnd":212,"githubUrl":"https://github.com/rohitg00/ai-engineering-from-scratch/blob/39ea8a1c6d0b61f071226eff7ede4d4105fed820/phases/13-tools-and-protocols/31-mcp-conformance-versioning-and-operations/code/main.py#L176-L212","documentation":"Error \"unknown era: {era}\" thrown in rohitg00/ai-engineering-from-scratch.","triggerScenarios":"Thrown at phases/13-tools-and-protocols/31-mcp-conformance-versioning-and-operations/code/main.py:194 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"39ea8a1c6d0b61f071226eff7ede4d4105fed820","analyzedAt":"2026-08-26T03:13:46.626Z","schemaVersion":2},"datasetVersion":"2026-08-26T07:17:17.940Z"}