{"record":{"id":"b22731164322bd96","repo":"HKUDS/DeepTutor","slug":"both-name-and-vault-path-are-required","errorCode":null,"errorMessage":"Both name and vault_path are required.","messagePattern":"Both name and vault_path are required\\.","errorType":"http","errorClass":"HTTPException","httpStatus":400,"severity":"error","filePath":"deeptutor/api/routers/knowledge.py","lineNumber":1722,"sourceCode":"\n\nclass ConnectObsidianRequest(BaseModel):\n    name: str\n    vault_path: str\n\n\n@router.post(\"/connect-obsidian\")\nasync def connect_obsidian_vault(payload: ConnectObsidianRequest):\n    \"\"\"Connect an existing Obsidian vault as a knowledge base.\n\n    Registers a pointer to the user's vault directory (``type: obsidian``) — no\n    upload, no index. The vault must be a directory the server can reach (i.e. a\n    local/self-hosted deployment); the Obsidian capability reads it live.\n    \"\"\"\n    name = (payload.name or \"\").strip()\n    vault_path = (payload.vault_path or \"\").strip()\n    if not name or not vault_path:\n        raise HTTPException(status_code=400, detail=\"Both name and vault_path are required.\")\n    try:\n        folder = assert_path_allowed(vault_path)\n        manager = get_kb_manager()\n        entry = manager.register_obsidian_vault(name, str(folder))\n        return {\"status\": \"connected\", \"name\": name, \"vault_path\": entry[\"vault_path\"]}\n    except ValueError as e:\n        # Missing/invalid path, disallowed location, or a name clash → 400.\n        raise HTTPException(status_code=400, detail=str(e))\n    except HTTPException:\n        raise\n    except Exception as e:\n        logger.error(f\"Error connecting Obsidian vault: {e}\")\n        raise HTTPException(status_code=500, detail=str(e))\n\n\nclass ConnectMarginNote4Request(BaseModel):\n    name: str\n    db_path: str = \"\"","sourceCodeStart":1704,"sourceCodeEnd":1740,"githubUrl":"https://github.com/HKUDS/DeepTutor/blob/3e82f130422a813cdd73c10b21a44e9325f5821a/deeptutor/api/routers/knowledge.py#L1704-L1740","documentation":"Error \"Both name and vault_path are required.\" thrown in HKUDS/DeepTutor.","triggerScenarios":"Thrown at deeptutor/api/routers/knowledge.py:1722 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"}