Overview
The same error is easily captured twice in a row. On a server the typical case is a captureException() in a catch that then re-throws — the error reaches UncaughtExceptionIntegration or your framework's error handler and is captured again. A retry loop failing the same way on every attempt is another.
dedupeIntegration drops an exception if it has the same name, message and stack as the immediately preceding exception. It keeps no longer history: A, A, B, A is sent as A, B, A. Logs, traces and other event types are never affected.
The comparison is process-wide, not per request: two concurrent requests failing with the exact same stack one right after the other are sent once.
Usage
ts
import { use } from '@buglapse/node'
import { dedupeIntegration } from '@buglapse/node/integrations'
use(dedupeIntegration())It has no options. With debug: true, each dropped duplicate is logged to the console.