@@ -468,25 +468,33 @@ async def _handle_message(session_message: SessionMessage) -> None:
468468 read_stream_writer = read_stream_writer ,
469469 )
470470
471- async def handle_request_async () -> None :
472- try :
473- if is_resumption :
474- await self ._handle_resumption_request (ctx )
475- else :
476- await self ._handle_post_request (ctx )
477- except httpx .HTTPError as exc :
478- logger .exception ("Transport error handling request" )
479- if isinstance (message , JSONRPCRequest ):
471+ # If this is a request, start a new task to handle it
472+ if isinstance (message , JSONRPCRequest ):
473+ request_id = message .id
474+
475+ async def handle_request_async () -> None :
476+ try :
477+ if is_resumption :
478+ await self ._handle_resumption_request (ctx )
479+ else :
480+ await self ._handle_post_request (ctx )
481+ except httpx .HTTPError as exc :
482+ logger .exception ("Transport error handling request" )
480483 error_data = ErrorData (code = INTERNAL_ERROR , message = f"Transport error: { exc } " )
481- error_msg = SessionMessage (JSONRPCError (jsonrpc = "2.0" , id = message . id , error = error_data ))
484+ error_msg = SessionMessage (JSONRPCError (jsonrpc = "2.0" , id = request_id , error = error_data ))
482485 with contextlib .suppress (anyio .BrokenResourceError , anyio .ClosedResourceError ):
483486 await read_stream_writer .send (error_msg )
484487
485- # If this is a request, start a new task to handle it
486- if isinstance (message , JSONRPCRequest ):
487488 tg .start_soon (handle_request_async )
488489 else :
489- await handle_request_async ()
490+
491+ async def handle_notification_async () -> None :
492+ try :
493+ await self ._handle_post_request (ctx )
494+ except httpx .HTTPError :
495+ logger .debug ("Transport error handling notification" , exc_info = True )
496+
497+ await handle_notification_async ()
490498
491499 async for session_message in write_stream_reader :
492500 sender_ctx = write_stream_reader .last_context
0 commit comments