Skip to content

Crash with Compose 1.10.0 and LazyColumn #2704

@ravenfeld

Description

@ravenfeld

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.

                                                                                                    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<androidx.compose.ui.node.ComposeUiNode, androidx.compose.ui.layout.MeasurePolicy, kotlin.Unit>
                                                                                                    103: apply Function2<androidx.compose.ui.node.ComposeUiNode, androidx.compose.runtime.CompositionLocalMap, kotlin.Unit>
                                                                                                    104: apply androidx.compose.runtime.Updater$$ExternalSyntheticLambda1@834cad7
                                                                                                    105: apply Function2<androidx.compose.ui.node.ComposeUiNode, androidx.compose.ui.Modifier, kotlin.Unit>
                                                                                                    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<androidx.compose.ui.node.ComposeUiNode, androidx.compose.ui.layout.MeasurePolicy, kotlin.Unit>
                                                                                                    109: apply Function2<androidx.compose.ui.node.ComposeUiNode, androidx.compose.runtime.CompositionLocalMap, kotlin.Unit>
                                                                                                    110: apply androidx.compose.runtime.Updater$$ExternalSyntheticLambda1@d920fc4
                                                                                                    111: apply Function2<androidx.compose.ui.node.ComposeUiNode, androidx.compose.ui.Modifier, kotlin.Unit>
                                                                                                    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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug 🪲Something isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions