Skip to content

fix(sentry): anonymous trampoline hop is '?' at runtime, not '' - #6554

Merged
koala73 merged 1 commit into
mainfrom
fix/y4-unknown-function-sentinel
Aug 13, 2026
Merged

koala73 merged 1 commit into
mainfrom
fix/y4-unknown-function-sentinel

Conversation

@koala73

@koala73 koala73 commented Aug 13, 2026

Copy link
Copy Markdown
Owner

Summary

The Y4 anonymous-trampoline fix merged in #6547 never fires in production. Within hours of the merge, the same class re-surfaced as WORLDMONITOR-Z6 — 4 events whose build_shas are at and after #6547's own merge commit, so the failing bundles verifiably contained the fn === '' tolerance. The hole is a representation gap, not a fifth minifier rename: @sentry/core stamps every parsed frame with function || UNKNOWN_FUNCTION — literally '?' — before beforeSend runs (stacktrace.js:115 in the installed SDK). Sentry ingest then displays '?' back as a null function, so the replay script and the test fixture — both built from API event data — tested '' and passed while production tested '?' and failed. The '' branch is dead code for this SDK version.

One-line fix: the trampoline predicate admits '?' alongside '', both under the unchanged load-bearing bounds (frames only inside the two fetch-free chunks whose modules provably issue no network call, collector frame still required). New fixtures pin the runtime shape: the '?'-named hop is suppressed; a '?' frame outside the allowlisted chunks and a '?' trampoline without a collector frame both still surface. The solutions doc from #6547 is corrected in place and gains the durable prevention rule: the ingest event is not the SDK event — build beforeSend fixtures from the SDK's frame representation, never from API event data.

Validation: the new runtime-shape test was red before the predicate change and green after; tests/sentry-beforesend.test.mjs 259/259; mdx-lint 731/731; tsc clean. Expect Z6/Y4 to take stragglers from pre-fix cached bundles for a while after deploy — events from build_shas ≥ this PR's merge are the real regression signal.


Compound Engineering
Claude Code

https://claude.ai/code/session_01AmZoei2dAPDptqMqX9Vrpx

The fn === '' tolerance merged in #6547 was derived from Sentry's INGEST
representation (anonymous frames display as function: null in the API) and
never fires in production: @sentry/core stamps every parsed frame with
`function || UNKNOWN_FUNCTION` — literally '?' — before beforeSend runs
(stacktrace.js:115). WORLDMONITOR-Z6 proved it within hours of the merge:
events from build_shas at and after #6547's own merge commit sailed through
the gate, each blocked by a panel-storage frame whose runtime name is '?'.

Admit '?' alongside '' (other SDK paths may omit the stamp), both bounded by
the fetch-free-chunk invariant. New fixtures pin the RUNTIME shape — the
'?'-named hop suppressed, '?' outside the allowlisted chunks and '?' without
a collector frame both still surface. The solutions doc gains the durable
lesson: the ingest event is not the SDK event; build beforeSend fixtures
from the SDK's frame representation, never from API event data.

Claude-Session: https://claude.ai/code/session_01AmZoei2dAPDptqMqX9Vrpx
@mintlify

mintlify Bot commented Aug 13, 2026 •

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
WorldMonitor 🟢 Ready View Preview Aug 13, 2026, 1:34 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@vercel

vercel Bot commented Aug 13, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
worldmonitor Ready Ready Preview Aug 13, 2026 1:37pm

Request Review

@koala73
koala73 merged commit bb33125 into main Aug 13, 2026
35 checks passed
@koala73
koala73 deleted the fix/y4-unknown-function-sentinel branch August 13, 2026 13:48

This branch was successfully deployed

2 active deployments
Preview — 41fa8a9b Deployed Aug 13, 2026 by vercel[bot]
staging - docs — 41fa8a9b Deployed Aug 13, 2026 by mintlify[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant