Spaces:
Sleeping
Sleeping
Update server.py
Browse files
server.py
CHANGED
@@ -106,11 +106,22 @@ async def handle_post(request: Request):
|
|
106 |
}
|
107 |
response_data = json.dumps(response)
|
108 |
try:
|
109 |
-
|
|
|
|
|
110 |
logger.info(f"Successfully sent tools/list response for session {session_id} via SSE")
|
|
|
|
|
|
|
111 |
except Exception as e:
|
112 |
logger.error(f"Failed to send SSE response for session {session_id}: {str(e)}")
|
113 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
return Response(status_code=202)
|
115 |
|
116 |
if not write_stream or not sse_writer:
|
|
|
106 |
}
|
107 |
response_data = json.dumps(response)
|
108 |
try:
|
109 |
+
# Use a timeout to prevent hanging
|
110 |
+
async with anyio.fail_after(5): # 5-second timeout
|
111 |
+
await sse_writer.send({"event": "message", "data": response_data})
|
112 |
logger.info(f"Successfully sent tools/list response for session {session_id} via SSE")
|
113 |
+
except anyio.get_cancelled_exc_class():
|
114 |
+
logger.error(f"Timeout while sending SSE response for session {session_id}")
|
115 |
+
return Response(status_code=202)
|
116 |
except Exception as e:
|
117 |
logger.error(f"Failed to send SSE response for session {session_id}: {str(e)}")
|
118 |
+
# Fallback: Try sending directly through write_stream
|
119 |
+
try:
|
120 |
+
await write_stream.send({"event": "message", "data": response_data})
|
121 |
+
logger.info(f"Fallback: Successfully sent tools/list response for session {session_id} via write_stream")
|
122 |
+
except Exception as fallback_e:
|
123 |
+
logger.error(f"Fallback failed for session {session_id}: {str(fallback_e)}")
|
124 |
+
return Response(status_code=202)
|
125 |
return Response(status_code=202)
|
126 |
|
127 |
if not write_stream or not sse_writer:
|