diff options
| author | zhiyue <[email protected]> | 2025-06-26 04:14:44 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-06-25 20:14:44 +0000 |
| commit | b0cf9bcecea84c15ad951edc94f09f73f8c3a192 (patch) | |
| tree | 3bebe4e89b87239b4b4dd77f933e8405dcb77c47 /packages/core/src | |
| parent | 31f32421a3b37cbfd296b02c39b112170ca5e761 (diff) | |
fix(telemetry): handle all promise rejections in ClearcutLogger (#1557)
Co-authored-by: Scott Densmore <[email protected]>
Diffstat (limited to 'packages/core/src')
| -rw-r--r-- | packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts index 03e94ef7..7afe7ecc 100644 --- a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts +++ b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts @@ -120,15 +120,22 @@ export class ClearcutLogger { reject(e); }); req.end(body); - }).then((buf: Buffer) => { - try { - this.last_flush_time = Date.now(); - return this.decodeLogResponse(buf) || {}; - } catch (error: unknown) { + }) + .then((buf: Buffer) => { + try { + this.last_flush_time = Date.now(); + return this.decodeLogResponse(buf) || {}; + } catch (error: unknown) { + console.error('Error flushing log events:', error); + return {}; + } + }) + .catch((error: unknown) => { + // Handle all errors to prevent unhandled promise rejections console.error('Error flushing log events:', error); + // Return empty response to maintain the Promise<LogResponse> contract return {}; - } - }); + }); } // Visible for testing. Decodes protobuf-encoded response from Clearcut server. |
