@@ -197,7 +197,16 @@ def connection_lost(self, exc: Exception | None) -> None:
197197 if not self .disconnected .done ():
198198 if exc is None :
199199 logger .info ("connection closed" )
200- self .disconnected .set_result (None )
200+ if self ._error_msgs :
201+ error_msg = ", " .join (self ._error_msgs )
202+ if len (self ._error_msgs ) > 1 :
203+ error_msg = f"The following errors occurred: { error_msg } "
204+ self ._error_msgs .clear ()
205+ self .disconnected .set_exception (
206+ BentoError (error_msg ),
207+ )
208+ else :
209+ self .disconnected .set_result (None )
201210 else :
202211 logger .error ("connection lost: %s" , exc )
203212 self .disconnected .set_exception (exc )
@@ -361,17 +370,7 @@ def _process_dbn(self, data: bytes) -> None:
361370 record .err ,
362371 )
363372 self ._error_msgs .append (record .err )
364- if record .is_last :
365- if len (self ._error_msgs ) > 1 :
366- errors = ", " .join (self ._error_msgs )
367- error_msg = f"The following errors occurred: { errors } "
368- else :
369- error_msg = self ._error_msgs [- 1 ]
370- self ._error_msgs .clear ()
371- self .disconnected .set_exception (
372- BentoError (error_msg ),
373- )
374- if isinstance (record , databento_dbn .SystemMsg ):
373+ elif isinstance (record , databento_dbn .SystemMsg ):
375374 if record .is_heartbeat :
376375 logger .debug ("gateway heartbeat" )
377376 else :
0 commit comments