diff --git a/src/lib/statsig/statsig.tsx b/src/lib/statsig/statsig.tsx index 9bccedc6ec..a9d69fda7b 100644 --- a/src/lib/statsig/statsig.tsx +++ b/src/lib/statsig/statsig.tsx @@ -46,11 +46,21 @@ export function logEvent( eventName: E & string, rawMetadata: LogEvents[E] & FlatJSONRecord, ) { - const fullMetadata = { - ...rawMetadata, - } as Record // Statsig typings are unnecessarily strict here. - fullMetadata.routeName = getCurrentRouteName() ?? '(Uninitialized)' - Statsig.logEvent(eventName, null, fullMetadata) + try { + const fullMetadata = { + ...rawMetadata, + } as Record // Statsig typings are unnecessarily strict here. + fullMetadata.routeName = getCurrentRouteName() ?? '(Uninitialized)' + if (Statsig.initializeCalled()) { + Statsig.logEvent(eventName, null, fullMetadata) + } + } catch (e) { + // A log should never interrupt the calling code, whatever happens. + // Rethrow on a clean stack. + setTimeout(() => { + throw e + }) + } } export function useGate(gateName: string) {