@@ -173,7 +173,7 @@ def _initialize_instance(
173173 self .sample_rate = sample_rate
174174 self .blocked_instrumentation_scopes = blocked_instrumentation_scopes
175175 self .additional_headers = additional_headers
176- self .tracer_provider = None
176+ self .tracer_provider : Optional [ TracerProvider ] = None
177177
178178 # OTEL Tracer
179179 if tracing_enabled :
@@ -399,9 +399,10 @@ def _stop_and_join_consumer_threads(self) -> None:
399399 )
400400
401401 def flush (self ) -> None :
402- tracer_provider = cast (TracerProvider , otel_trace_api .get_tracer_provider ())
403- if not isinstance (tracer_provider , otel_trace_api .ProxyTracerProvider ):
404- tracer_provider .force_flush ()
402+ if self .tracer_provider is not None and not isinstance (
403+ self .tracer_provider , otel_trace_api .ProxyTracerProvider
404+ ):
405+ self .tracer_provider .force_flush ()
405406 langfuse_logger .debug ("Successfully flushed OTEL tracer provider" )
406407
407408 self ._score_ingestion_queue .join ()
@@ -414,9 +415,10 @@ def shutdown(self) -> None:
414415 # Unregister the atexit handler first
415416 atexit .unregister (self .shutdown )
416417
417- tracer_provider = cast (TracerProvider , otel_trace_api .get_tracer_provider ())
418- if not isinstance (tracer_provider , otel_trace_api .ProxyTracerProvider ):
419- tracer_provider .force_flush ()
418+ if self .tracer_provider is not None and not isinstance (
419+ self .tracer_provider , otel_trace_api .ProxyTracerProvider
420+ ):
421+ self .tracer_provider .force_flush ()
420422
421423 self ._stop_and_join_consumer_threads ()
422424
0 commit comments