File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -60,6 +60,9 @@ def create_all(self):
6060@app .teardown_appcontext
6161def shutdown_session (exception = None ):
6262 """Remove the database session at the end of each request."""
63+ if exception :
64+ # Rollback the session if there was an exception to clear the failed state
65+ db_session .rollback ()
6366 db_session .remove ()
6467
6568
Original file line number Diff line number Diff line change 44import re
55import time
66import asyncio
7+ import logging
78from uuid import uuid4
89import frontmatter
910import datetime
1011import httpx
12+
13+ logger = logging .getLogger (__name__ )
1114from dateutil import rrule , tz
1215from urllib .parse import urlparse , parse_qs , quote
1316
@@ -2379,7 +2382,13 @@ async def sse_stream():
23792382 if not username :
23802383 abort (401 )
23812384
2382- user = User .query .filter_by (username = username .lower ()).first ()
2385+ try :
2386+ user = User .query .filter_by (username = username .lower ()).first ()
2387+ except Exception as e :
2388+ # Rollback any failed transaction state before aborting
2389+ logger .error (f"Database error in SSE stream: { e } " )
2390+ db .session .rollback ()
2391+ abort (500 )
23832392
23842393 if not user :
23852394 abort (400 )
You can’t perform that action at this time.
0 commit comments