diff --git a/elasticapm/transport/base.py b/elasticapm/transport/base.py index ce4da1c02..2d8ed8b33 100644 --- a/elasticapm/transport/base.py +++ b/elasticapm/transport/base.py @@ -70,7 +70,7 @@ def __init__( queue_chill_count=500, queue_chill_time=1.0, processors=None, - **kwargs + **kwargs, ): """ Create a new Transport instance @@ -132,7 +132,13 @@ def _process_queue(self): if event_type == "close": if buffer_written: - self._flush(buffer) + try: + self._flush(buffer) + except Exception as exc: + logger.error( + "Exception occurred while flushing the buffer " + "before closing the transport connection: {0}".format(exc) + ) self._flushed.set() return # time to go home! @@ -257,7 +263,7 @@ def close(self): self._closed = True self.queue("close", None) if not self._flushed.wait(timeout=self._max_flush_time): - raise ValueError("close timed out") + logger.error("Closing the transport connection timed out.") stop_thread = close