aeonshift commited on
Commit
79f070a
·
verified ·
1 Parent(s): 1d045a3

Update server.py

Browse files
Files changed (1) hide show
  1. server.py +13 -2
server.py CHANGED
@@ -106,11 +106,22 @@ async def handle_post(request: Request):
106
  }
107
  response_data = json.dumps(response)
108
  try:
109
- await sse_writer.send({"event": "message", "data": response_data})
 
 
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
- return Response(status_code=202)
 
 
 
 
 
 
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: