{"record":{"id":"5612722bbd02b033","repo":"bytedance/deer-flow","slug":"run-run-id-not-found-561272","errorCode":null,"errorMessage":"Run {run_id} not found","messagePattern":"Run (.+?) not found","errorType":"http","errorClass":"HTTPException","httpStatus":404,"severity":"error","filePath":"backend/app/gateway/routers/thread_runs.py","lineNumber":919,"sourceCode":"@router.get(\"/{thread_id}/runs\", response_model=list[RunResponse])\n@require_permission(\"runs\", \"read\", owner_check=True)\nasync def list_runs(thread_id: ThreadId, request: Request) -> list[RunResponse]:\n    \"\"\"List all runs for a thread.\"\"\"\n    run_mgr = get_run_manager(request)\n    user_id = await get_current_user(request)\n    records = await run_mgr.list_by_thread(thread_id, user_id=user_id)\n    return [_record_to_response(r) for r in records]\n\n\n@router.get(\"/{thread_id}/runs/{run_id}\", response_model=RunResponse)\n@require_permission(\"runs\", \"read\", owner_check=True)\nasync def get_run(thread_id: ThreadId, run_id: str, request: Request) -> RunResponse:\n    \"\"\"Get details of a specific run.\"\"\"\n    run_mgr = get_run_manager(request)\n    user_id = await get_current_user(request)\n    record = await run_mgr.get(run_id, user_id=user_id)\n    if record is None or record.thread_id != thread_id:\n        raise HTTPException(status_code=404, detail=f\"Run {run_id} not found\")\n    return _record_to_response(record)\n\n\n@router.post(\"/{thread_id}/runs/{run_id}/cancel\")\n@require_permission(\"runs\", \"cancel\", owner_check=True, require_existing=True)\nasync def cancel_run(\n    thread_id: ThreadId,\n    run_id: str,\n    request: Request,\n    wait: bool = Query(default=False, description=\"Block until run completes after cancel\"),\n    action: Literal[\"interrupt\", \"rollback\"] = Query(default=\"interrupt\", description=\"Cancel action\"),\n) -> Response:\n    \"\"\"Cancel a running or pending run.\n\n    - action=interrupt: Stop execution, keep current checkpoint (can be resumed)\n    - action=rollback: Stop execution, revert to pre-run checkpoint state\n    - wait=true: Block until the run fully stops, return 204\n    - wait=false: Return immediately with 202","sourceCodeStart":901,"sourceCodeEnd":937,"githubUrl":"https://github.com/bytedance/deer-flow/blob/1dd6ba1acb03700589994b0366c5d1c7d05e2eff/backend/app/gateway/routers/thread_runs.py#L901-L937","documentation":"Error \"Run {run_id} not found\" thrown in bytedance/deer-flow.","triggerScenarios":"Thrown at backend/app/gateway/routers/thread_runs.py:919 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the run_id belongs to the thread; list runs to find a valid one.","The run may have been cleaned up; start a new run instead."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"1dd6ba1acb03700589994b0366c5d1c7d05e2eff","analyzedAt":"2026-08-14T21:20:34.804Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}