HKUDS/DeepTutor · error · HTTPException
No default knowledge base is configured
Error message
No default knowledge base is configured
What it means
HTTP 404 from _resolve_default_or_name: the caller asked for the default KB (name matched DEFAULT_KB_ALIASES like 'default'), but manager.get_default() is empty or points to a KB that no longer exists.
Source
Thrown at deeptutor/multi_user/knowledge_access.py:163
base_dir=admin_kb_base_dir(),
source="admin",
assigned=True,
read_only=True,
)
raise HTTPException(status_code=404, detail=f"Knowledge base '{name}' not found")
def _resolve_default_or_name(manager: KnowledgeBaseManager, name: str) -> str:
requested = str(name or "").strip()
names = manager.list_knowledge_bases()
if requested and requested in names:
return requested
if requested.lower() in DEFAULT_KB_ALIASES:
default_kb = manager.get_default()
if default_kb and default_kb in names:
return default_kb
raise HTTPException(status_code=404, detail="No default knowledge base is configured")
raise HTTPException(status_code=404, detail=f"Knowledge base '{requested}' not found")
def manager_for_resource(resource: KnowledgeResource) -> KnowledgeBaseManager:
return _manager_for(str(resource.base_dir.resolve()))
def list_visible_knowledge_bases() -> list[dict[str, Any]]:
user = get_current_user()
manager = current_kb_manager()
items: list[dict[str, Any]] = []
for name in manager.list_knowledge_bases():
items.append(
{
"id": f"admin:kb:{name}" if user.is_admin else f"user:kb:{name}",
"name": name,
"source": "admin" if user.is_admin else "user",
"assigned": False,View on GitHub (pinned to 3e82f13042)
Solutions
- Create a KB and set it as the default via the KnowledgeBaseManager
- If the default was deleted, reset the default to an existing KB
- Pass an explicit KB name instead of relying on the alias
Example fix
// before
kb = resolve_kb("default") # 404: no default configured
// after
manager = KnowledgeBaseManager(base_dir=user_kb_dir)
if not manager.get_default():
manager.set_default(manager.list_knowledge_bases()[0])
kb = resolve_kb("default") Defensive patterns
Strategy: validation
Validate before calling
default_kb = manager.get_default()
if not default_kb or default_kb not in manager.list_knowledge_bases():
configure_default(manager) # set one or pass explicit name
kb = resolve_kb("default") Type guard
def has_valid_default(manager: KnowledgeBaseManager) -> bool:
d = manager.get_default()
return bool(d) and d in manager.list_knowledge_bases() Try / catch
try:
resolve_kb("default")
except HTTPException as e:
if e.status_code == 404:
kb = resolve_kb(next(iter(manager.list_knowledge_bases()))) # fallback Prevention
- Set a default KB immediately after workspace creation
- Clear the default setting whenever the default KB is deleted
- Prefer explicit KB names over the alias in automation
When it happens
Trigger: resolve_kb('default') (or another alias) when no default KB has been configured in the manager, or the configured default was deleted so it's absent from manager.list_knowledge_bases().
Common situations: Fresh installs where a default KB was never set; default KB deleted but the setting not cleared; shared profiles referencing a stale default.
Related errors
- No default knowledge base is configured
- Knowledge base '{requested}' not found
- Knowledge base '{kb_name}' not found
- Folder '{folder_id}' not found
- Linked folder '{folder_id}' not found
AI-assisted analysis of HKUDS/DeepTutor@3e82f13042 (2026-08-27).
Data as JSON: /api/errors/5d82e7c7905403a1.
Report an issue: GitHub.