{"record":{"id":"b195c0fb3a827052","repo":"lfnovo/open-notebook","slug":"error-creating-chat-session-str-e","errorCode":null,"errorMessage":"Error creating chat session: {str(e)}","messagePattern":"Error creating chat session: (.+?)","errorType":"http","errorClass":"HTTPException","httpStatus":500,"severity":"error","filePath":"api/routers/chat.py","lineNumber":175,"sourceCode":"\n        return ChatSessionResponse(\n            id=session.id or \"\",\n            title=session.title or \"\",\n            notebook_id=request.notebook_id,\n            created=str(session.created),\n            updated=str(session.updated),\n            message_count=0,\n            model_override=session.model_override,\n        )\n    except NotFoundError:\n        raise HTTPException(status_code=404, detail=\"Notebook not found\")\n    except HTTPException:\n        raise\n    except OpenNotebookError:\n        raise\n    except Exception as e:\n        logger.error(f\"Error creating chat session: {str(e)}\")\n        raise HTTPException(\n            status_code=500, detail=f\"Error creating chat session: {str(e)}\"\n        )\n\n\n@router.get(\n    \"/chat/sessions/{session_id}\", response_model=ChatSessionWithMessagesResponse\n)\nasync def get_session(session_id: str):\n    \"\"\"Get a specific session with its messages.\"\"\"\n    try:\n        # Get session (normalizes the ID and 404s if missing)\n        full_session_id, session = await get_session_or_404(session_id)\n\n        # Get session state from LangGraph to retrieve messages\n        # Use sync get_state() in a thread since SqliteSaver doesn't support async\n        thread_state = await asyncio.to_thread(\n            chat_graph.get_state,\n            config=RunnableConfig(configurable={\"thread_id\": full_session_id}),","sourceCodeStart":157,"sourceCodeEnd":193,"githubUrl":"https://github.com/lfnovo/open-notebook/blob/a7de90d38aaf18ee85fd661854d35c11e44613e2/api/routers/chat.py#L157-L193","documentation":"Generic 500 from POST /chat/sessions when session creation fails unexpectedly (not NotFound/HTTP/OpenNotebookError). Original cause is logged as 'Error creating chat session: ...'.","triggerScenarios":"ChatSession.save() failing due to DB connectivity loss, schema constraint violations, or an invalid model_override value rejected at persist time.","commonSituations":"SurrealDB down or restarted, schema migration didn't run (table definition missing), passing an unsupported model id in model_override.","solutions":["Check API logs for the exact underlying exception","Confirm SurrealDB is up and migrations ran on API startup","Validate model_override against the configured providers before posting"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"catch (e) { if (e.status === 500 && isTransient(e)) retry(); else surfaceError(e); }","preventionTips":["Validate model_override against provider list first","Ensure DB migrations have run"],"tags":["http-500","internal-error","surrealdb","chat-sessions"],"backgroundTag":"unhandled-server-exception","analyzedSha":"a7de90d38aaf18ee85fd661854d35c11e44613e2","analyzedAt":"2026-08-27T02:39:58.166Z","schemaVersion":2},"datasetVersion":"2026-08-27T03:17:27.898Z"}