{"record":{"id":"1a03400c60136e94","repo":"HKUDS/DeepTutor","slug":"folder-name-is-required","errorCode":null,"errorMessage":"Folder name is required","messagePattern":"Folder name is required","errorType":"http","errorClass":"HTTPException","httpStatus":400,"severity":"error","filePath":"deeptutor/api/routers/knowledge.py","lineNumber":2400,"sourceCode":"\nclass CreateFolderPayload(BaseModel):\n    path: str\n\n\nclass MoveFilePayload(BaseModel):\n    source: str\n    dest_folder: str = \"\"\n\n\n@router.post(\"/{kb_name}/folders\")\nasync def create_kb_folder(kb_name: str, payload: CreateFolderPayload):\n    \"\"\"Create an (organizational) folder under <kb>/raw/. No retrieval effect.\"\"\"\n    manager, kb_name, _ = _writable_kb(kb_name)\n    _assert_kb_writable_or_409(kb_name, _load_kb_entry_or_404(manager, kb_name))\n    raw_dir = manager.get_knowledge_base_path(kb_name) / \"raw\"\n    subdir = _sanitize_rel_subdir(payload.path)\n    if not subdir:\n        raise HTTPException(status_code=400, detail=\"Folder name is required\")\n    target = _safe_join_raw(raw_dir, subdir)\n    target.mkdir(parents=True, exist_ok=True)\n    return {\"status\": \"ok\", \"path\": subdir}\n\n\n@router.post(\"/{kb_name}/files/move\")\nasync def move_kb_file(kb_name: str, payload: MoveFilePayload):\n    \"\"\"Move a file/folder between organizational folders (display only).\n\n    Moving never re-indexes: folders don't affect retrieval, so this is a pure\n    filesystem relocation under ``raw/``.\n    \"\"\"\n    manager, kb_name, _ = _writable_kb(kb_name)\n    _assert_kb_writable_or_409(kb_name, _load_kb_entry_or_404(manager, kb_name))\n    raw_dir = manager.get_knowledge_base_path(kb_name) / \"raw\"\n\n    source_rel = _sanitize_rel_subdir(payload.source)\n    if not source_rel:","sourceCodeStart":2382,"sourceCodeEnd":2418,"githubUrl":"https://github.com/HKUDS/DeepTutor/blob/3e82f130422a813cdd73c10b21a44e9325f5821a/deeptutor/api/routers/knowledge.py#L2382-L2418","documentation":"Error \"Folder name is required\" thrown in HKUDS/DeepTutor.","triggerScenarios":"Thrown at deeptutor/api/routers/knowledge.py:2400 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"}