diff --git a/libs/core/langchain_core/tracers/event_stream.py b/libs/core/langchain_core/tracers/event_stream.py index ad2d4eb6924..b7c6fa0359c 100644 --- a/libs/core/langchain_core/tracers/event_stream.py +++ b/libs/core/langchain_core/tracers/event_stream.py @@ -940,9 +940,10 @@ async def _astream_events_implementation_v2( yield event finally: - # Wait for the runnable to finish, if not cancelled (eg. by break) - if task.cancel(): - try: - await task - except asyncio.CancelledError: - pass + # Cancel the task if it's still running + task.cancel() + # Await it anyway, to run any cleanup code, and propagate any exceptions + try: + await task + except asyncio.CancelledError: + pass