Stu Mason
Stu Mason

Activity

StuMason/cleanconnect
Client SaaS
TypeScript
Pull Request Opened

PR #199 opened: fix: drop browser-translation 'Maximum call stack' Sentry noise (#140)

What #140 actually is

The issue title says /cleaner/payments/connect, but Sentry (TIDY-LINKER-2Y) shows the real transaction is /cleaner/dashboardRangeError: Maximum call stack size exceeded, 12 events, 1 user, last seen 2026-05-19. The user is on a uk-UA locale, iOS Chrome, and the stacktrace has no first-party frames (undefined:31:70).

Diagnosis: not our code

The cleaner dashboard tree has no render-loop or recursion risk — its single useEffect (confetti) is hasFired-ref-guarded with early returns. A no-app-frame Maximum call stack on a translate-locale mobile browser is the classic signature of browser auto-translation / injected-script recursion caught by the global onerror handler — not us.

Fix

beforeSend drops Maximum call stack size exceeded events only when no stack frame comes from our own bundle (tidylinker.com / /build/). This is safe by construction:

  • A genuine recursion in our code carries app frames → still reported.
  • React's own infinite-render guard throws a different message (Maximum update depth exceeded) → not masked.

Complements the existing denyUrls (which misses this because the frame URL is undefined, not an extension URL).

I'll resolve the Sentry issue once this ships; if it regresses with app frames, that'd be a real bug and we'd see it.

+23
additions
-0
deletions
1
files changed