Repository navigation
Description
On apps that use Jetpack Compose foundation 1.10.0 or later, sentry-compose records no scroll breadcrumbs for LazyColumn, LazyRow, LazyVerticalGrid, staggered grids, or Pager, even when they are tagged. With debug enabled, the SDK logs Unable to find scroll target. No breadcrumb captured. A customer on foundation 1.12.0 (Compose BOM 2026.08.00) with sentry-android 8.61.0 reported it, and the code is unchanged on main / 8.63.0.
Root cause
ComposeGestureTargetLocator treats a node as scrollable only when it finds one of these:
"androidx.compose.foundation.ScrollingLayoutElement" == type ||
"androidx.compose.foundation.ScrollingContainerElement" == typeor a ScrollBy key on an old-style SemanticsModifier.
What the foundation-android AARs on Google Maven contain:
- 1.8.3 – 1.9.5:
ScrollingContainerElementis present. - 1.10.0, 1.11.x, 1.12.0, 1.12.1:
ScrollingContainerElementis gone, replaced byandroidx.compose.foundation.ScrollableAreaElement. - In 1.12.0,
LazyListKt,LazyGridKt,LazyStaggeredGridKtandLazyLayoutPagerKtall applyScrollableAreaElement. None of them applyScrollingLayoutElement. - Lazy-layout semantics comes from
LazyLayoutSemanticsModifier, aModifierNodeElement, not aSemanticsModifier. So theScrollByfallback misses it too. Modifier.verticalScroll/horizontalScrollstill applyScrollingLayoutElement, so non-lazy scrolling containers still work.
sentry-compose/proguard-rules.pro also keeps names only for ScrollingLayoutElement and ScrollingContainerElement. In minified apps R8 can rename any other modifier class, which breaks the class-name check.
The SDK compiles against androidxCompose = "1.9.5". ComposeGestureTargetLocatorTest uses stub classes in place of real Compose classes, so neither the build nor the tests caught the rename.
Scope
- Affected: scroll breadcrumbs (and the user-interaction transactions that depend on them) for every lazy layout and pager on foundation ≥ 1.10.
- Not affected: click detection;
verticalScroll/horizontalScrollcontainers.
Reproduction
- Build an app with Compose foundation ≥ 1.10.0,
sentry-compose, user-interaction breadcrumbs, anddebug = true. - Add a
LazyColumnwithModifier.sentryTag("list")(ortestTag). - Scroll the list.
- The logcat shows
Unable to find scroll target. No breadcrumb captured., and noui.scrollbreadcrumb is recorded.
via gene.wright.
--
Activity
linear-code commentedon Nov 11, 2026
JAVA-833
github-actions commentedon Nov 11, 2026
A PR closing this issue has just been released 🚀
This issue was referenced by PR #6548, which was included in the 8.64.0 release.