{"record":{"id":"84a922bcc622a7bb","repo":"HKUDS/DeepTutor","slug":"knowledge-base-requested-not-found-84a922","errorCode":null,"errorMessage":"Knowledge base '{requested}' not found","messagePattern":"Knowledge base '(.+?)' not found","errorType":"http","errorClass":"HTTPException","httpStatus":404,"severity":"error","filePath":"deeptutor/multi_user/knowledge_access.py","lineNumber":164,"sourceCode":"            source=\"admin\",\n            assigned=True,\n            read_only=True,\n        )\n\n    raise HTTPException(status_code=404, detail=f\"Knowledge base '{name}' not found\")\n\n\ndef _resolve_default_or_name(manager: KnowledgeBaseManager, name: str) -> str:\n    requested = str(name or \"\").strip()\n    names = manager.list_knowledge_bases()\n    if requested and requested in names:\n        return requested\n    if requested.lower() in DEFAULT_KB_ALIASES:\n        default_kb = manager.get_default()\n        if default_kb and default_kb in names:\n            return default_kb\n        raise HTTPException(status_code=404, detail=\"No default knowledge base is configured\")\n    raise HTTPException(status_code=404, detail=f\"Knowledge base '{requested}' not found\")\n\n\ndef manager_for_resource(resource: KnowledgeResource) -> KnowledgeBaseManager:\n    return _manager_for(str(resource.base_dir.resolve()))\n\n\ndef list_visible_knowledge_bases() -> list[dict[str, Any]]:\n    user = get_current_user()\n    manager = current_kb_manager()\n    items: list[dict[str, Any]] = []\n    for name in manager.list_knowledge_bases():\n        items.append(\n            {\n                \"id\": f\"admin:kb:{name}\" if user.is_admin else f\"user:kb:{name}\",\n                \"name\": name,\n                \"source\": \"admin\" if user.is_admin else \"user\",\n                \"assigned\": False,\n                \"read_only\": False,","sourceCodeStart":146,"sourceCodeEnd":182,"githubUrl":"https://github.com/HKUDS/DeepTutor/blob/3e82f130422a813cdd73c10b21a44e9325f5821a/deeptutor/multi_user/knowledge_access.py#L146-L182","documentation":"HTTP 404 from _resolve_default_or_name: a specific (non-alias) KB name was requested but does not exist among the manager's knowledge bases for the current base_dir. Distinct from the alias branch: this is an explicit name miss.","triggerScenarios":"resolve_kb('my-kb') where 'my-kb' is not returned by manager.list_knowledge_bases(); wrong base_dir scoped to another user/workspace; KB not yet created.","commonSituations":"Per-user storage directories so each manager sees only its own KBs; calling with a name from a different workspace; race where the KB is created after the call.","solutions":["Verify the name against manager.list_knowledge_bases() for the same base_dir the manager was built with","Create the KB first (kb create) if it should exist","Confirm the correct user/workspace context is supplying base_dir"],"exampleFix":"// before\nkb = resolve_kb(\"team-kb\")  # 404: not in this workspace\n\n// after\nmanager = KnowledgeBaseManager(base_dir=resource_base_dir)\nif \"team-kb\" not in manager.list_knowledge_bases():\n    manager.create_knowledge_base(\"team-kb\")\nkb = resolve_kb(\"team-kb\")","handlingStrategy":"validation","validationCode":"names = manager.list_knowledge_bases()\nif name not in names:\n    manager.create_knowledge_base(name)\nkb = resolve_kb(name)","typeGuard":"def kb_in_scope(name: str, manager: KnowledgeBaseManager) -> bool:\n    return name in manager.list_knowledge_bases()","tryCatchPattern":"try:\n    resolve_kb(name)\nexcept HTTPException as e:\n    if e.status_code == 404 and name.lower() not in DEFAULT_KB_ALIASES:\n        raise KBNotFound(name) from e","preventionTips":["Ensure the manager was built with the same base_dir as the KB's owner","Create KBs before first reference in scripts (idempotent create-if-missing)"],"tags":["knowledge-base","not-found","http-404"],"backgroundTag":"resource-not-found","analyzedSha":"3e82f130422a813cdd73c10b21a44e9325f5821a","analyzedAt":"2026-08-27T06:57:25.364Z","schemaVersion":2},"datasetVersion":"2026-08-27T08:17:20.692Z"}