diff --git a/lib/crewai/src/crewai/events/listeners/tracing/trace_listener.py b/lib/crewai/src/crewai/events/listeners/tracing/trace_listener.py index c8f7000cd..08afbeb11 100644 --- a/lib/crewai/src/crewai/events/listeners/tracing/trace_listener.py +++ b/lib/crewai/src/crewai/events/listeners/tracing/trace_listener.py @@ -194,6 +194,12 @@ class TraceCollectionListener(BaseEventListener): @event_bus.on(FlowFinishedEvent) def on_flow_finished(source: Any, event: FlowFinishedEvent) -> None: self._handle_trace_event("flow_finished", source, event) + if self.batch_manager.batch_owner_type == "flow": + if self.first_time_handler.is_first_time: + self.first_time_handler.mark_events_collected() + self.first_time_handler.handle_execution_completion() + else: + self.batch_manager.finalize_batch() @event_bus.on(FlowPlotEvent) def on_flow_plot(source: Any, event: FlowPlotEvent) -> None: diff --git a/lib/crewai/src/crewai/flow/flow.py b/lib/crewai/src/crewai/flow/flow.py index b6467ba51..9f914d81e 100644 --- a/lib/crewai/src/crewai/flow/flow.py +++ b/lib/crewai/src/crewai/flow/flow.py @@ -1020,14 +1020,6 @@ class Flow(Generic[T], metaclass=FlowMeta): ) self._event_futures.clear() - trace_listener = TraceCollectionListener() - if trace_listener.batch_manager.batch_owner_type == "flow": - if trace_listener.first_time_handler.is_first_time: - trace_listener.first_time_handler.mark_events_collected() - trace_listener.first_time_handler.handle_execution_completion() - else: - trace_listener.batch_manager.finalize_batch() - return final_output finally: detach(flow_token)