You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Last known good: 10.48.0. Broken from >10.48.0 through at least 10.69.0 (also reproduced on 10.54.0 / 10.58.0).
Framework Version
React 19.1.0, @radix-ui/react-popover 1.1.15
Link to Sentry event
Repro Session Replay links are available internally (support ticket / Linear). Happy to share with Sentry staff on request.
Reproduction Example/SDK Setup
Relevant Sentry.init (sanitized):
Sentry.init({dsn: '...',tunnel: '...',// useCompression disabled so tunnel can be usedenableLogs: true,integrations: [Sentry.reactRouterV6BrowserTracingIntegration({
useEffect,
useLocation,
useNavigationType,
createRoutesFromChildren,
matchRoutes,}),Sentry.replayIntegration({useCompression: false,maskAllText: false,maskAllInputs: false,blockAllMedia: false,networkDetailAllowUrls: [],}),],tracesSampleRate: 1.0,replaysSessionSampleRate: 1.0,replaysOnErrorSampleRate: 1.0,});
UI: Radix/shadcn Popover. Trigger is a <button>. Content is PopoverPrimitive.Content rendered as <div role="dialog">, typically portalled to document.body via PopoverPrimitive.Portal.
Confirmed not:
native HTML <dialog>
HTML popover attribute / top-layer popover API
sentry-block / data-sentry-block or custom block/mask rules
<frame> elements
Reporter also tried isPortalled={false} and removing open/close animation classes. Popovers still missing in replay.
Steps to Reproduce
Use @sentry/react with Session Replay enabled in a React 19 app that uses @radix-ui/react-popover.
Record a session and open a Radix popover / filter control (content portalled to document.body as <div role="dialog">).
Watch the replay: click is visible, but popover content never appears.
Compare with @sentry/react@10.48.0 (popovers appear) vs any later version through at least 10.69.0 (popovers missing).
Expected Result
Popover content that is visible to the end user (and present in the live DOM) also appears in Session Replay playback.
Actual Result
Click/breadcrumb activity is recorded (e.g. filter button shows pressed/dark state).
Popover content never appears in the reconstructed DOM.
Affects all clients/browsers according to the reporter (not an ad-blocker issue).
Still reproducible after upgrading to 10.69.0.
Reporter bisect result:
10.48.0: last version where popovers appear in replay
after 10.48.0: broken
Additional Context
Likely first-bad release / suspect PR
Between 10.48.0 and 10.49.0, the only Replay package commit is:
That PR adds syncMirrorAttributesFromMutationEvent() in handleRecordingEmit, folding attribute mutations into the rrweb mirror for click breadcrumbs. It is not an obvious “drop portal nodes” change, but it is the only Replay code change in the first-bad release window and is worth investigating first.
Soft mutation breadcrumb (mutationBreadcrumbLimit, default 750) is present in some replays, but reporter indicates N is well under mutationLimit (10,000), and recording continues around the missing-popover clicks. Unlikely to be the direct cause of missing nodes.
Secondary symptom (possibly separate)
Reporter also notes SPA navigations sometimes show multiple pages stacked in replay only (old route content not removed). They believe this predates the popover regression. Calling it out for completeness, not asserting the same root cause.
Support context
Reported via Sentry Support. Repro Session Replay links will be attached on the internal Linear ticket for staff. Happy to pull more details from the reporter or help validate a patch if useful.
Is there an existing issue for this?
How do you use Sentry?
Sentry Saas (sentry.io)
Which SDK are you using?
@sentry/react
SDK Version
Last known good: 10.48.0. Broken from >10.48.0 through at least 10.69.0 (also reproduced on 10.54.0 / 10.58.0).
Framework Version
React 19.1.0, @radix-ui/react-popover 1.1.15
Link to Sentry event
Repro Session Replay links are available internally (support ticket / Linear). Happy to share with Sentry staff on request.
Reproduction Example/SDK Setup
Relevant
Sentry.init(sanitized):UI: Radix/shadcn Popover. Trigger is a
<button>. Content isPopoverPrimitive.Contentrendered as<div role="dialog">, typically portalled todocument.bodyviaPopoverPrimitive.Portal.Confirmed not:
<dialog>popoverattribute / top-layer popover APIsentry-block/data-sentry-blockor custom block/mask rules<frame>elementsReporter also tried
isPortalled={false}and removing open/close animation classes. Popovers still missing in replay.Steps to Reproduce
@sentry/reactwith Session Replay enabled in a React 19 app that uses@radix-ui/react-popover.document.bodyas<div role="dialog">).@sentry/react@10.48.0(popovers appear) vs any later version through at least10.69.0(popovers missing).Expected Result
Popover content that is visible to the end user (and present in the live DOM) also appears in Session Replay playback.
Actual Result
10.69.0.Reporter bisect result:
Additional Context
Likely first-bad release / suspect PR
Between
10.48.0and10.49.0, the only Replay package commit is:fix(replay): use live click attributes in breadcrumbs)That PR adds
syncMirrorAttributesFromMutationEvent()inhandleRecordingEmit, folding attribute mutations into the rrweb mirror for click breadcrumbs. It is not an obvious “drop portal nodes” change, but it is the only Replay code change in the first-bad release window and is worth investigating first.Ruled-out / less likely theories
div role="dialog", nopopoverattribute).mutationBreadcrumbLimit, default 750) is present in some replays, but reporter indicatesNis well undermutationLimit(10,000), and recording continues around the missing-popover clicks. Unlikely to be the direct cause of missing nodes.Secondary symptom (possibly separate)
Reporter also notes SPA navigations sometimes show multiple pages stacked in replay only (old route content not removed). They believe this predates the popover regression. Calling it out for completeness, not asserting the same root cause.
Support context
Reported via Sentry Support. Repro Session Replay links will be attached on the internal Linear ticket for staff. Happy to pull more details from the reporter or help validate a patch if useful.