diff --git a/packages/core/src/integrations/supabase.ts b/packages/core/src/integrations/supabase.ts index 360f31142652..39dedadc9e04 100644 --- a/packages/core/src/integrations/supabase.ts +++ b/packages/core/src/integrations/supabase.ts @@ -11,6 +11,7 @@ import { setHttpStatus, SPAN_STATUS_ERROR, SPAN_STATUS_OK, startSpan } from '../ import type { IntegrationFn } from '../types-hoist/integration'; import { debug } from '../utils/debug-logger'; import { isPlainObject } from '../utils/is'; +import { addExceptionMechanism } from '../utils/misc'; const AUTH_OPERATIONS_TO_INSTRUMENT = [ 'reauthenticate', @@ -236,6 +237,7 @@ function instrumentAuthOperation(operation: AuthOperationFn, isAdmin = false): A captureException(res.error, { mechanism: { handled: false, + type: 'auto.db.supabase.auth', }, }); } else { @@ -252,6 +254,7 @@ function instrumentAuthOperation(operation: AuthOperationFn, isAdmin = false): A captureException(err, { mechanism: { handled: false, + type: 'auto.db.supabase.auth', }, }); @@ -408,7 +411,7 @@ function instrumentPostgRESTFilterBuilder(PostgRESTFilterBuilder: PostgRESTFilte err.details = res.error.details; } - const supabaseContext: Record = {}; + const supabaseContext: Record = {}; if (queryItems.length) { supabaseContext.query = queryItems; } @@ -416,10 +419,19 @@ function instrumentPostgRESTFilterBuilder(PostgRESTFilterBuilder: PostgRESTFilte supabaseContext.body = body; } - captureException(err, { - contexts: { - supabase: supabaseContext, - }, + captureException(err, scope => { + scope.addEventProcessor(e => { + addExceptionMechanism(e, { + handled: false, + type: 'auto.db.supabase.postgres', + }); + + return e; + }); + + scope.setContext('supabase', supabaseContext); + + return scope; }); } @@ -448,6 +460,7 @@ function instrumentPostgRESTFilterBuilder(PostgRESTFilterBuilder: PostgRESTFilte return res; }, (err: Error) => { + // TODO: shouldn't we capture this error? if (span) { setHttpStatus(span, 500); span.end();