{"record":{"id":"6c5135e87b9c9eae","repo":"HKUDS/DeepTutor","slug":"str-exc-6c5135","errorCode":null,"errorMessage":"str(exc)","messagePattern":"str\\(exc\\)","errorType":"http","errorClass":"HTTPException","httpStatus":409,"severity":"error","filePath":"deeptutor/api/routers/question_notebook.py","lineNumber":370,"sourceCode":"    return QuestionBankStats(**await store.question_bank_stats())\n\n\n# ── Category CRUD ────────────────────────────────────────────────\n\n\n@router.get(\"/categories\", response_model=list[CategoryItem])\nasync def list_categories():\n    store = get_sqlite_session_store()\n    return await store.list_categories()\n\n\n@router.post(\"/categories\", response_model=CategoryItem, status_code=201)\nasync def create_category(payload: CategoryCreateRequest):\n    store = get_sqlite_session_store()\n    try:\n        return await store.create_category(payload.name)\n    except ValueError as exc:\n        raise HTTPException(status_code=409, detail=str(exc))\n\n\n@router.patch(\"/categories/{category_id}\")\nasync def rename_category(category_id: int, payload: CategoryRenameRequest):\n    store = get_sqlite_session_store()\n    try:\n        updated = await store.rename_category(category_id, payload.name)\n    except ValueError as exc:\n        raise HTTPException(status_code=409, detail=str(exc))\n    if not updated:\n        raise HTTPException(status_code=404, detail=\"Category not found\")\n    return {\"updated\": True, \"id\": category_id, \"name\": payload.name}\n\n\n@router.delete(\"/categories/{category_id}\")\nasync def delete_category(category_id: int):\n    store = get_sqlite_session_store()\n    deleted = await store.delete_category(category_id)","sourceCodeStart":352,"sourceCodeEnd":388,"githubUrl":"https://github.com/HKUDS/DeepTutor/blob/3e82f130422a813cdd73c10b21a44e9325f5821a/deeptutor/api/routers/question_notebook.py#L352-L388","documentation":"Error \"str(exc)\" thrown in HKUDS/DeepTutor.","triggerScenarios":"Thrown at deeptutor/api/routers/question_notebook.py:370 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":"3e82f130422a813cdd73c10b21a44e9325f5821a","analyzedAt":"2026-08-27T06:57:25.364Z","schemaVersion":2},"datasetVersion":"2026-08-27T08:17:20.692Z"}