From 5d93b8a3d1a2a605bcb554a046ba3eb5687537e6 Mon Sep 17 00:00:00 2001 From: Manoel Aranda Neto Date: Thu, 30 Apr 2026 07:35:07 +0200 Subject: [PATCH] fix: acknowledge oversized dropped events --- .sampo/changesets/oversized-event-flush-hang.md | 5 +++++ posthog/consumer.py | 1 + posthog/test/test_consumer.py | 1 + 3 files changed, 7 insertions(+) create mode 100644 .sampo/changesets/oversized-event-flush-hang.md diff --git a/.sampo/changesets/oversized-event-flush-hang.md b/.sampo/changesets/oversized-event-flush-hang.md new file mode 100644 index 00000000..9297fd6e --- /dev/null +++ b/.sampo/changesets/oversized-event-flush-hang.md @@ -0,0 +1,5 @@ +--- +pypi/posthog: patch +--- + +Prevent flush from hanging after dropping oversized queued events. diff --git a/posthog/consumer.py b/posthog/consumer.py index d4ce068e..8f3fa3b5 100644 --- a/posthog/consumer.py +++ b/posthog/consumer.py @@ -112,6 +112,7 @@ def next(self): self.log.error( "Item exceeds 900kib limit, dropping. (%s)", str(item) ) + queue.task_done() continue items.append(item) total_size += item_size diff --git a/posthog/test/test_consumer.py b/posthog/test/test_consumer.py index e032e813..f476b82a 100644 --- a/posthog/test/test_consumer.py +++ b/posthog/test/test_consumer.py @@ -45,6 +45,7 @@ def test_dropping_oversize_msg(self) -> None: next = consumer.next() self.assertEqual(next, []) self.assertTrue(q.empty()) + self.assertEqual(q.unfinished_tasks, 0) def test_upload(self) -> None: q = Queue()