{"record":{"id":"5092a545e379509f","repo":"exo-explore/exo","slug":"invalid-endpoint-endpoint","errorCode":null,"errorMessage":"Invalid endpoint {endpoint}","messagePattern":"Invalid endpoint (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"src/exo/worker/engines/mlx/disaggregated/client.py","lineNumber":48,"sourceCode":"\n\n@dataclass\nclass PrefillResult:\n    header: Header\n    kv_chunks: dict[int, list[KVChunk]] = field(\n        default_factory=dict[int, list[KVChunk]]\n    )\n    arrays: dict[int, list[TensorBlob]] = field(\n        default_factory=dict[int, list[TensorBlob]]\n    )\n    total_tokens: int = 0\n\n\ndef _parse_endpoint(endpoint: str) -> tuple[str, int]:\n    if \":\" in endpoint:\n        host, port_str = endpoint.rsplit(\":\", 1)\n        return host, int(port_str)\n    raise ValueError(f\"Invalid endpoint {endpoint}\")\n\n\ndef remote_prefill_fetch(\n    endpoint: str,\n    request: PrefillRequest,\n    on_header: Callable[[Header], None] | None = None,\n    on_kv_chunk: Callable[[KVChunk, int], None] | None = None,\n    timeout_secs: float = _SOCKET_TIMEOUT_SECS,\n) -> PrefillResult:\n    host, port = _parse_endpoint(endpoint)\n    logger.info(\n        f\"Connecting to prefill server at {host}:{port} \"\n        f\"({len(request.token_ids)} tokens, start_pos={request.start_pos})\"\n    )\n\n    sock = socket.create_connection((host, port), timeout=timeout_secs)\n    sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)\n    sock.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, _RECV_BUFFER_BYTES)","sourceCodeStart":30,"sourceCodeEnd":66,"githubUrl":"https://github.com/exo-explore/exo/blob/21a54c5ea0230a3bec1e1a786d200126c7e34ec6/src/exo/worker/engines/mlx/disaggregated/client.py#L30-L66","documentation":"Error \"Invalid endpoint {endpoint}\" thrown in exo-explore/exo.","triggerScenarios":"Thrown at src/exo/worker/engines/mlx/disaggregated/client.py:48 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":"21a54c5ea0230a3bec1e1a786d200126c7e34ec6","analyzedAt":"2026-08-26T00:02:16.033Z","schemaVersion":2},"datasetVersion":"2026-08-26T04:18:47.238Z"}