@@ -351,26 +351,34 @@ async def _receive_loop(self) -> None:
351351 if isinstance (message , Exception ):
352352 await self ._handle_incoming (message )
353353 elif isinstance (message .message .root , JSONRPCRequest ):
354- validated_request = self ._receive_request_type .model_validate (
355- message .message .root .model_dump (
356- by_alias = True , mode = "json" , exclude_none = True
354+ try :
355+ validated_request = self ._receive_request_type .model_validate (
356+ message .message .root .model_dump (
357+ by_alias = True , mode = "json" , exclude_none = True
358+ )
359+ )
360+ responder = RequestResponder (
361+ request_id = message .message .root .id ,
362+ request_meta = validated_request .root .params .meta
363+ if validated_request .root .params
364+ else None ,
365+ request = validated_request ,
366+ session = self ,
367+ on_complete = lambda r : self ._in_flight .pop (
368+ r .request_id , None
369+ ),
357370 )
358- )
359- responder = RequestResponder (
360- request_id = message .message .root .id ,
361- request_meta = validated_request .root .params .meta
362- if validated_request .root .params
363- else None ,
364- request = validated_request ,
365- session = self ,
366- on_complete = lambda r : self ._in_flight .pop (r .request_id , None ),
367- )
368371
369- self ._in_flight [responder .request_id ] = responder
370- await self ._received_request (responder )
372+ self ._in_flight [responder .request_id ] = responder
373+ await self ._received_request (responder )
371374
372- if not responder ._completed : # type: ignore[reportPrivateUsage]
373- await self ._handle_incoming (responder )
375+ if not responder ._completed : # type: ignore[reportPrivateUsage]
376+ await self ._handle_incoming (responder )
377+ except Exception as e :
378+ logging .warning (
379+ f"Failed to validate request: { e } . "
380+ f"Message was: { message .message .root } "
381+ )
374382
375383 elif isinstance (message .message .root , JSONRPCNotification ):
376384 try :
0 commit comments