{"record":{"id":"4279d1aaf0698a40","repo":"bytedance/deer-flow","slug":"run-run-id-not-found","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/feedback.py","lineNumber":79,"sourceCode":"\n@router.put(\"/{thread_id}/runs/{run_id}/feedback\", response_model=FeedbackResponse)\n@require_permission(\"threads\", \"write\", owner_check=True, require_existing=True)\nasync def upsert_feedback(\n    thread_id: ThreadId,\n    run_id: str,\n    body: FeedbackUpsertRequest,\n    request: Request,\n) -> dict[str, Any]:\n    \"\"\"Create or update feedback for a run (idempotent).\"\"\"\n    if body.rating not in (1, -1):\n        raise HTTPException(status_code=400, detail=\"rating must be +1 or -1\")\n\n    user_id = await get_current_user(request)\n\n    run_store = get_run_store(request)\n    run = await run_store.get(run_id)\n    if run is None:\n        raise HTTPException(status_code=404, detail=f\"Run {run_id} not found\")\n    if run.get(\"thread_id\") != thread_id:\n        raise HTTPException(status_code=404, detail=f\"Run {run_id} not found in thread {thread_id}\")\n\n    feedback_repo = get_feedback_repo(request)\n    return await feedback_repo.upsert(\n        run_id=run_id,\n        thread_id=thread_id,\n        rating=body.rating,\n        user_id=user_id,\n        comment=body.comment,\n    )\n\n\n@router.delete(\"/{thread_id}/runs/{run_id}/feedback\")\n@require_permission(\"threads\", \"delete\", owner_check=True, require_existing=True)\nasync def delete_run_feedback(\n    thread_id: ThreadId,\n    run_id: str,","sourceCodeStart":61,"sourceCodeEnd":97,"githubUrl":"https://github.com/bytedance/deer-flow/blob/1dd6ba1acb03700589994b0366c5d1c7d05e2eff/backend/app/gateway/routers/feedback.py#L61-L97","documentation":"Error \"Run {run_id} not found\" thrown in bytedance/deer-flow.","triggerScenarios":"Thrown at backend/app/gateway/routers/feedback.py:79 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the run_id exists; list runs for the thread and pick a valid one.","The run may have expired or been deleted; submit feedback against a recent run."],"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-15T17:31:12.345Z"}