From 30126844695ec2b0853f50464afdbc06ad84f3ee Mon Sep 17 00:00:00 2001 From: anj-s <32556631+anj-s@users.noreply.github.com> Date: Mon, 23 Jun 2025 17:05:42 -0700 Subject: Fix duplicate startSession logs and duplicate logging events over the wire (#1357) --- packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'packages/core/src/telemetry/clearcut-logger') diff --git a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts index 50f2fffa..edf1d952 100644 --- a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts +++ b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts @@ -85,12 +85,15 @@ export class ClearcutLogger { if (this.config?.getDebugMode()) { console.log('Flushing log events to Clearcut.'); } + const eventsToSend = [...this.events]; + this.events.length = 0; + return new Promise((resolve, reject) => { const request = [ { log_source_name: 'CONCORD', request_time_ms: Date.now(), - log_event: this.events, + log_event: eventsToSend, }, ]; const body = JSON.stringify(request); @@ -114,12 +117,13 @@ export class ClearcutLogger { if (this.config?.getDebugMode()) { console.log('Clearcut POST request error: ', e); } + // Add the events back to the front of the queue to be retried. + this.events.unshift(...eventsToSend); reject(e); }); req.end(body); }).then((buf: Buffer) => { try { - this.events.length = 0; this.last_flush_time = Date.now(); return this.decodeLogResponse(buf) || {}; } catch (error: unknown) { -- cgit v1.2.3