mapbox / mapbox/mapbox-maps-android

Crash with Compose 1.10.0 and LazyColumn

Open
#2,704 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug :beetle:
Dominant language
Kotlin
Stars
578
Forks
161
PR merge metrics
No merged PRs in 30d

Description

## Environment

- Android OS version: 13, 14, 15 , 16
- Devices affected: many
- Maps SDK Version: 11.17.1

## Observed behavior and steps to reproduce

We are using Mapbox Compose, and we noticed that after upgrading to Compose 1.10.0, we encounter an issue when placing the Mapbox component inside a LazyColumn.

```Process: com.decathlon.quechuafinder.debug, PID: 29126
androidx.compose.runtime.ComposePausableCompositionException: Failed to execute op number 139:
99: down LayoutNode@dd6e620 children: 1 measurePolicy: BoxMeasurePolicy(alignment=BiasAlignment(horizontalBias=-1.0, verticalBias=-1.0), propagateMinConstraints=false) deactivated: false
100: down LayoutNode@55f77c6 children: 2 measurePolicy: ColumnMeasurePolicy(verticalArrangement=Arrangement#Top, horizontalAlignment=Horizontal(bias=-1.0)) deactivated: false
101: reuse LayoutNode@55f77c6 children: 2 measurePolicy: ColumnMeasurePolicy(verticalArrangement=Arrangement#Top, horizontalAlignment=Horizontal(bias=-1.0)) deactivated: false
102: apply Function2
103: apply Function2
104: apply androidx.compose.runtime.Updater$$ExternalSyntheticLambda1@834cad7
105: apply Function2
106: down LayoutNode@a5c5e08 children: 0 measurePolicy: androidx.compose.foundation.text.EmptyMeasurePolicy@21d2c3d deactivated: false
107: reuse LayoutNode@a5c5e08 children: 0 measurePolicy: androidx.compose.foundation.text.EmptyMeasurePolicy@21d2c3d deactivated: false
108: apply Function2
109: apply Function2
110: apply androidx.compose.runtime.Updater$$ExternalSyntheticLambda1@d920fc4
111: apply Function2
112: up
113: down LayoutNode@02aa9a1 children: 0 measurePolicy: androidx.compose.foundation.text.EmptyMeasurePolicy@21d2c3d deactivated: false
```

## Notes / preliminary analysis

From what I understand, Compose 1.10.0 has optimized LazyColumn performance, and when it deactivates a node, Mapbox still interacts with the node when it shouldn’t.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the crash with Mapbox Compose inside a LazyColumn using Compose 1.10.0 and Maps SDK 11.17.1 across the reported Android versions. Investigate the interaction between LazyColumn node deactivation and the Mapbox component. Done means the component no longer crashes in this configuration.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, kotlin
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.