{"record":{"id":"dbcb090b279b19ea","repo":"bytedance/deer-flow","slug":"checkpoint-not-found","errorCode":null,"errorMessage":"Checkpoint not found","messagePattern":"Checkpoint not found","errorType":"http","errorClass":"HTTPException","httpStatus":404,"severity":"error","filePath":"backend/app/gateway/routers/threads.py","lineNumber":1243,"sourceCode":"        metadata=metadata,\n        checkpoint={\"id\": checkpoint_id, \"ts\": coerce_iso(created_at)},\n        checkpoint_id=checkpoint_id,\n        parent_checkpoint_id=parent_checkpoint_id,\n        created_at=coerce_iso(created_at),\n        tasks=tasks,\n    )\n\n\n@router.post(\"/{thread_id}/state\", response_model=ThreadStateResponse)\n@require_permission(\"threads\", \"write\", owner_check=True, require_existing=True)\nasync def update_thread_state(thread_id: ThreadId, body: ThreadStateUpdateRequest, request: Request) -> ThreadStateResponse:\n    \"\"\"Replace selected thread-state fields through the materialized graph.\"\"\"\n    from app.gateway.deps import get_thread_store\n\n    thread_store = get_thread_store(request)\n    if body.checkpoint_id is not None:\n        if not body.checkpoint_id:\n            raise HTTPException(status_code=404, detail=\"Checkpoint not found\")\n        selected_config = {\n            \"configurable\": {\n                \"thread_id\": thread_id,\n                \"checkpoint_ns\": \"\",\n                \"checkpoint_id\": body.checkpoint_id,\n            }\n        }\n        try:\n            checkpoint_tuple = await get_checkpointer(request).aget_tuple(selected_config)\n        except Exception:\n            logger.exception(\"Failed to get state for thread %s\", sanitize_log_param(thread_id))\n            raise HTTPException(status_code=500, detail=\"Failed to get thread state\")\n        if checkpoint_tuple is None:\n            raise HTTPException(status_code=404, detail=f\"Checkpoint {body.checkpoint_id} not found\")\n\n    mutation_node = body.as_node or \"manual_state_update\"\n    # Resolve through the shared boundary (thread metadata -> assistant_id ->\n    # effective schema) so extension middleware channels stay writable.","sourceCodeStart":1225,"sourceCodeEnd":1261,"githubUrl":"https://github.com/bytedance/deer-flow/blob/1dd6ba1acb03700589994b0366c5d1c7d05e2eff/backend/app/gateway/routers/threads.py#L1225-L1261","documentation":"Error \"Checkpoint not found\" thrown in bytedance/deer-flow.","triggerScenarios":"Thrown at backend/app/gateway/routers/threads.py:1243 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Refresh the thread state; the checkpoint may have been pruned.","List checkpoints for the thread and use an existing checkpoint_id."],"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"}