Skip to content

fix(ui): Stop the explore catch-all from renaming every transaction - #120769

Open
scttcper wants to merge 1 commit into
masterfrom
scttcper/fix-catchall-transaction-names
Open

fix(ui): Stop the explore catch-all from renaming every transaction#120769
scttcper wants to merge 1 commit into
masterfrom
scttcper/fix-catchall-transaction-names

Conversation

@scttcper

@scttcper scttcper commented Jul 28, 2026

Copy link
Copy Markdown
Member

Every transaction in the app is reported as /:catchAll/.... /dashboard/20788/ shows up as /:catchAll/20788.

image

The explore catch-all from #116066 uses :catchAll/*. Our SDK matches relative route paths against the full pathname, so that pattern matches every URL in the app and overwrites the real route name. A bare * doesn't. Kept :catchAll/ for the single-segment case since that's what outranks the /:orgId/:projectId/ legacy redirect.

Unrelated but nearby: /insights/typo/ and friends still hit that legacy redirect and render "project not found". Needs its own PR.

Every pageload/navigation transaction in the app was being reported as
`/:catchAll/...` — `/dashboard/20788/` came through as `/:catchAll/20788`,
`/issues/12345/` as `/:catchAll/12345`, and so on.

The explore catch-all added in #116066 used `:catchAll/*`. Our react-router
instrumentation flattens the whole route tree into one list and re-matches
relative route paths against the full pathname, so a splat with a leading
dynamic segment matches every URL in the app with two or more segments. The
SDK then throws away the correctly resolved name and rebuilds it from the
catch-all. Only single-segment URLs like `/issues/` escaped it.

A bare `*` doesn't trip that heuristic. Kept `:catchAll/` for the
single-segment case since it's what actually outranks the
`/:orgId/:projectId/` legacy redirect — `*` alone ties with it and loses.

Verified by running the SDK's own `resolveRouteNameAndSource` against the
real route tree, and diffed 690 explore URLs across both customer-domain
modes to confirm no route resolves differently.

Also fixes the comment above it. Declaration order doesn't decide anything
here — react-router v6 ranks by specificity, order is only the tiebreaker.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions github-actions Bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Jul 28, 2026
@scttcper
scttcper marked this pull request as ready for review July 28, 2026 18:54
@scttcper
scttcper requested review from a team, adrianviquez and nsdeschenes July 28, 2026 18:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant