HKUDS/DeepTutor · warning · HTTPException
Entry not found
Error message
Entry not found
What it means
404 from GET /dashboard/activity/{entry_id} (dashboard router) when the session store has no session with that id (get_session_with_messages returns None). Activity entries are sessions; a missing session means the entry does not exist.
Source
Thrown at deeptutor/api/routers/dashboard.py:84
@router.post("/suggestions/refresh")
async def refresh_starter_suggestions():
"""Generate a new set now. Backs the reroll control.
Synchronous, unlike the read: a human clicked and is waiting for a
different set.
"""
from deeptutor.services.suggestions import refresh_suggestions
result = await refresh_suggestions()
return {**result.to_dict(), "stale": False}
@router.get("/{entry_id}")
async def get_activity_entry(entry_id: str):
store = get_session_store()
session = await store.get_session_with_messages(entry_id)
if session is None:
raise HTTPException(status_code=404, detail="Entry not found")
capability = str(session.get("capability") or "chat")
return {
"id": session.get("session_id"),
"type": capability.replace("deep_", ""),
"capability": capability,
"title": session.get("title"),
"timestamp": session.get("updated_at", session.get("created_at")),
"content": {
"messages": session.get("messages", []),
"active_turns": session.get("active_turns", []),
"status": session.get("status", "idle"),
"summary": session.get("compressed_summary", ""),
},
}
View on GitHub (pinned to 3e82f13042)
Solutions
- Confirm the session exists in the session store (SQLite)
- If the store was reset, regenerate activity by running new sessions
- Drop stale entries from the dashboard view on 404
Defensive patterns
Strategy: try-catch
Validate before calling
ids = {e['id'] for e in client.get('/dashboard/activity').json()['entries']}
if entry_id not in ids:
skip() Try / catch
resp = client.get(f'/dashboard/{entry_id}')
if resp.status_code == 404:
prune_from_dashboard(entry_id) Prevention
- Refresh activity lists after store resets
- Expect old sessions to expire under retention policies
When it happens
Trigger: GET /dashboard/{entry_id} with an unknown, deleted, or expired session id; sessions stored in a fresh/reset SQLite store.
Common situations: Session retention cleaned up old rows, database reset between environments, or a dashboard holding ids from a previous deployment.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- Operation not found
- Tool call not found
- No default knowledge base is configured
- Knowledge base '{requested}' not found
- Knowledge base '{kb_name}' not found
AI-assisted analysis of HKUDS/DeepTutor@3e82f13042 (2026-08-27).
Data as JSON: /api/errors/ae12f4d5e65ceb50.
Report an issue: GitHub.