Tolriq
08/23/2025, 8:25 AMlayout state is not idle before measure starts
crashes with Compose 1.10 alpha 1. Last time it was some obscure bug with viewpager found by luck. Would it be possible for Compose to log the actual state it is in for that crash to help? Or is there anything I could log about current state if i was to catch the measure issue in the Layout ?shikasd
08/24/2025, 2:13 AMshikasd
08/24/2025, 2:14 AMTolriq
08/24/2025, 7:03 AMshikasd
08/24/2025, 7:20 AMTolriq
08/24/2025, 8:03 AMFatal Exception: java.lang.IndexOutOfBoundsException: Index 1, size 1
at androidx.compose.foundation.internal.InlineClassHelperKt.throwIndexOutOfBoundsException(InlineClassHelper.kt:42)
at androidx.compose.foundation.lazy.layout.MutableIntervalList.get(MutableIntervalList.java:227)
at androidx.compose.foundation.lazy.layout.LazyLayoutIntervalContent.getKey(LazyLayoutIntervalContent.java:73)
at androidx.compose.foundation.pager.PagerLazyLayoutItemProvider.getKey(LazyLayoutPager.kt:219)
at androidx.compose.foundation.lazy.layout.LazyLayoutMeasureScopeImpl.compose(LazyLayoutMeasureScope.kt:91)
at androidx.compose.foundation.pager.PagerMeasurePolicyKt.keepAroundItems(PagerMeasurePolicy.kt:259)
at androidx.compose.foundation.pager.PagerMeasurePolicyKt.access$keepAroundItems(PagerMeasurePolicy.kt:1)
at androidx.compose.foundation.pager.PagerMeasurePolicyKt$rememberPagerMeasurePolicy$1$1.measure-0kLqBqw(PagerMeasurePolicy.kt:229)
at androidx.compose.foundation.lazy.layout.LazyLayoutKt$LazyLayout$2.invoke$lambda$8$lambda$7(LazyLayout.kt:141)
at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$createMeasurePolicy$1.measure-3p2s80s(SubcomposeLayout.kt:949)
at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:128)
at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:843)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:190)
at androidx.compose.foundation.lazy.layout.LazyLayoutBeyondBoundsModifierNode.measure-3p2s80s(LazyLayoutBeyondBoundsModifierLocal.kt:118)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:190)
at androidx.compose.foundation.layout.FillNode.measure-3p2s80s(Size.kt:721)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:190)
at androidx.compose.ui.node.MeasurePassDelegate$performMeasureBlock$1.invoke(MeasurePassDelegate.kt:173)
at androidx.compose.ui.node.MeasurePassDelegate$performMeasureBlock$1.invoke(MeasurePassDelegate.kt:172)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:689)
at androidx.compose.ui.node.MeasurePassDelegate.remeasure-BRTryo0(MeasurePassDelegate.kt:1034)
at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui(LayoutNode.kt:1302)
at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui$default(LayoutNode.kt:1295)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure-sdFAvZA(MeasureAndLayoutDelegate.java:380)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.java:595)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.onlyRemeasureIfPending(MeasureAndLayoutDelegate.java:689)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.forceMeasureTheSubtreeInternal(MeasureAndLayoutDelegate.java:716)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.forceMeasureTheSubtree(MeasureAndLayoutDelegate.java:680)
at androidx.compose.ui.platform.AndroidComposeView.forceMeasureTheSubtree(AndroidComposeView.android.kt:1862)
at androidx.compose.ui.node.Owner.forceMeasureTheSubtree$default(Owner.kt:256)
at androidx.compose.ui.node.MeasurePassDelegate.remeasure-BRTryo0(MeasurePassDelegate.kt:490)
at androidx.compose.ui.node.MeasurePassDelegate.measure-BRTryo0(MeasurePassDelegate.kt:452)
at app.symfonik.ui.playback.components.expanded.PortraitPlayerLayoutKt$PortraitPlayerLayout$5$1.measure-3p2s80s(PortraitPlayerLayout.kt:71)
Does it sound related to your fix or should I really try to find a way for the users to contact me for a repro ?shikasd
08/24/2025, 9:08 AMModifier.layout { m, c ->
withMutableSnapshot {
m.measure(c)
}
...
}
Tolriq
08/24/2025, 9:41 AM