{"record":{"id":"10d4312c3156dc53","repo":"exo-explore/exo","slug":"invalid-task-id-task-id","errorCode":null,"errorMessage":"Invalid task ID: {task_id}","messagePattern":"Invalid task ID: (.+?)","errorType":"http","errorClass":"HTTPException","httpStatus":400,"severity":"error","filePath":"src/exo/api/main.py","lineNumber":2089,"sourceCode":"        await self._send_download(command)\n        return DeleteDownloadResponse(command_id=command.command_id)\n\n    async def cancel_download(\n        self,\n        payload: CancelDownloadParams,\n    ) -> CancelDownloadResponse:\n        command = CancelDownload(\n            target_node_id=payload.target_node_id,\n            model_id=payload.model_id,\n        )\n        await self._send_download(command)\n        return CancelDownloadResponse(command_id=command.command_id)\n\n    @staticmethod\n    def _get_trace_path(task_id: str) -> Path:\n        trace_path = EXO_TRACING_CACHE_DIR / f\"trace_{task_id}.json\"\n        if not trace_path.resolve().is_relative_to(EXO_TRACING_CACHE_DIR.resolve()):\n            raise HTTPException(status_code=400, detail=f\"Invalid task ID: {task_id}\")\n        return trace_path\n\n    async def list_traces(self) -> TraceListResponse:\n        traces: list[TraceListItem] = []\n\n        for trace_file in sorted(\n            EXO_TRACING_CACHE_DIR.glob(\"trace_*.json\"),\n            key=lambda p: p.stat().st_mtime,\n            reverse=True,\n        ):\n            # Extract task_id from filename (trace_{task_id}.json)\n            task_id = trace_file.stem.removeprefix(\"trace_\")\n            stat = trace_file.stat()\n            created_at = datetime.fromtimestamp(\n                stat.st_mtime, tz=timezone.utc\n            ).isoformat()\n            traces.append(\n                TraceListItem(","sourceCodeStart":2071,"sourceCodeEnd":2107,"githubUrl":"https://github.com/exo-explore/exo/blob/21a54c5ea0230a3bec1e1a786d200126c7e34ec6/src/exo/api/main.py#L2071-L2107","documentation":"Error \"Invalid task ID: {task_id}\" thrown in exo-explore/exo.","triggerScenarios":"Thrown at src/exo/api/main.py:2089 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"}