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:
|