Skip to content

Crash: java.lang.IllegalStateException - OffsetMapping.transformedToOriginal returned invalid mapping: 9 -> 9 is not in range of original text [0, 8] #623

@mianaliasjad

Description

@mianaliasjad

I see this crash reported in Firebase Crashlytics related to the editor. I haven’t been able to reproduce the crash myself, but it’s happening for some users in production.

Fatal Exception: java.lang.IllegalStateException: OffsetMapping.originalToTransformed returned invalid mapping: 392 -> 392 is not in range of transformed text [0, 391] at androidx.compose.foundation.internal.InlineClassHelperKt.throwIllegalStateException(InlineClassHelper.kt:26) at androidx.compose.foundation.text.ValidatingOffsetMappingKt.validateOriginalToTransformed(ValidatingOffsetMapping.kt:141) at androidx.compose.foundation.text.ValidatingOffsetMappingKt.throwIfNotValidTransform(ValidatingOffsetMapping.kt:69) at androidx.compose.foundation.text.ValidatingOffsetMappingKt.throwIfNotValidTransform$default(ValidatingOffsetMapping.kt:60) at androidx.compose.foundation.text.ValidatingOffsetMappingKt.filterWithValidation(ValidatingOffsetMapping.kt:37) at androidx.compose.foundation.text.TextFieldScrollKt.defaultTextFieldScroll(TextFieldScroll.kt:129) at androidx.compose.foundation.text.TextFieldScroll_androidKt.textFieldScroll(TextFieldScroll_android.kt:29) at androidx.compose.foundation.text.CoreTextFieldKt$CoreTextField$5$1.invoke(CoreTextField.kt:579) at androidx.compose.foundation.text.CoreTextFieldKt$CoreTextField$5$1.invoke(CoreTextField.kt:569) at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:121) at androidx.compose.runtime.internal.ComposableLambdaImpl$invoke$1.invoke(ComposableLambda.kt:122) at androidx.compose.runtime.internal.ComposableLambdaImpl$invoke$1.invoke(ComposableLambda.kt:122) at androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.java:196) at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(Composer.kt:2895) at androidx.compose.runtime.ComposerImpl.skipToGroupEnd(Composer.kt:3289) at com.mohamedrejeb.richeditor.ui.material3.OutlinedRichTextEditorKt$OutlinedRichTextEditor$3$2.invoke(OutlinedRichTextEditor.kt:151) at com.mohamedrejeb.richeditor.ui.material3.OutlinedRichTextEditorKt$OutlinedRichTextEditor$3$2.invoke(OutlinedRichTextEditor.kt:150) at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:130) at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:51) at androidx.compose.foundation.text.CoreTextFieldKt$CoreTextField$5.invoke(CoreTextField.kt:569) at androidx.compose.foundation.text.CoreTextFieldKt$CoreTextField$5.invoke(CoreTextField.kt:568) at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:121) at androidx.compose.runtime.internal.ComposableLambdaImpl$invoke$1.invoke(ComposableLambda.kt:122) at androidx.compose.runtime.internal.ComposableLambdaImpl$invoke$1.invoke(ComposableLambda.kt:122) at androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.java:196) at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(Composer.kt:2895) at androidx.compose.runtime.ComposerImpl.skipToGroupEnd(Composer.kt:3289) at androidx.compose.foundation.text.ContextMenu_androidKt.ContextMenuArea(ContextMenu_android.kt:48) at androidx.compose.foundation.text.CoreTextFieldKt.CoreTextFieldRootBox(CoreTextField.kt:683) at androidx.compose.foundation.text.CoreTextFieldKt.CoreTextField(CoreTextField.kt:568) at androidx.compose.foundation.text.CoreTextFieldKt.CoreTextField$lambda$41(CoreTextField.kt:62) at androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.java:196) at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(Composer.kt:2895) at androidx.compose.runtime.ComposerImpl.skipToGroupEnd(Composer.kt:3289) at androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactoryKt.SkippableItem-JVlU9Rs(LazyLayoutItemContentFactory.kt:119) at androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactoryKt.access$SkippableItem-JVlU9Rs(LazyLayoutItemContentFactory.kt:1) at androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1.invoke(LazyLayoutItemContentFactory.kt:95) at androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1.invoke(LazyLayoutItemContentFactory.java:85) at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:121) at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:51) at androidx.compose.runtime.internal.Expect_jvmKt.invokeComposable(Expect_jvm.kt:24) at androidx.compose.runtime.ComposerImpl.doCompose-aFTiNEg(Composer.kt:3843) at androidx.compose.runtime.ComposerImpl.composeContent--ZbOJvo$runtime(ComposerImpl.java:3747) at androidx.compose.runtime.CompositionImpl.composeContent(Composition.kt:814) at androidx.compose.runtime.Recomposer.composeInitial$runtime(Recomposer.kt:1216) at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime(Composer.kt:4186) at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime(Composer.kt:4186) at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime(Composer.kt:4186) at androidx.compose.runtime.CompositionImpl.composeInitial(Composition.kt:692) at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:633) at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose(SubcomposeLayout.kt:698) at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose(SubcomposeLayout.kt:641) at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose(LayoutNodeSubcompositionsState.java:607) at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$Scope.subcompose(SubcomposeLayout.kt:1231) at androidx.compose.foundation.lazy.layout.LazyLayoutMeasureScopeImpl.compose(LazyLayoutMeasureScope.kt:94) at androidx.compose.foundation.lazy.layout.LazyLayoutMeasuredItemProvider.getPlaceables-3p2s80s(LazyLayoutMeasuredItem.kt:60) at androidx.compose.foundation.lazy.LazyListMeasuredItemProvider.getAndMeasure-0kLqBqw(LazyListMeasuredItemProvider.java:53) at androidx.compose.foundation.lazy.LazyListMeasuredItemProvider.getAndMeasure-0kLqBqw$default(LazyListMeasuredItemProvider.java:47) at androidx.compose.foundation.lazy.LazyListMeasureKt.measureLazyList-LCrQqZ4(LazyListMeasure.kt:224) at androidx.compose.foundation.lazy.LazyListKt$rememberLazyListMeasurePolicy$1$1.measure-0kLqBqw(LazyList.kt:354) 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:914) at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:128) at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:794) 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.java:173) at androidx.compose.ui.node.MeasurePassDelegate$performMeasureBlock$1.invoke(MeasurePassDelegate.java:172) at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.java:2495) at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:464) at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:248) at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:124) at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:107) at androidx.compose.ui.node.MeasurePassDelegate.performMeasure-BRTryo0$ui_release(MeasurePassDelegate.kt:426) at androidx.compose.ui.node.MeasurePassDelegate.remeasure-BRTryo0(MeasurePassDelegate.kt:477) at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release(LayoutNode.kt:1264) at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure-sdFAvZA(MeasureAndLayoutDelegate.kt:378) at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureAndLayout-0kLqBqw(MeasureAndLayoutDelegate.kt:490) at androidx.compose.ui.platform.AndroidComposeView.measureAndLayout-0kLqBqw(AndroidComposeView.android.kt:1570) at androidx.compose.ui.node.LayoutNode.forceRemeasure(LayoutNode.kt:1326) at androidx.compose.foundation.lazy.LazyListState.onScroll$foundation_release(LazyListState.java:524) at androidx.compose.foundation.lazy.LazyListState.scrollableState$lambda$0(LazyListState.java:279) at androidx.compose.foundation.gestures.DefaultScrollableState.dispatchRawDelta(ScrollableState.kt:209) at androidx.compose.foundation.lazy.LazyListState.dispatchRawDelta(LazyListState.kt:447) at androidx.compose.foundation.gestures.ScrollingLogic.dispatchRawDelta-MK-Hz9U(ScrollingLogic.java:753) at androidx.compose.foundation.gestures.ScrollingLogic.performRawScroll-MK-Hz9U(ScrollingLogic.java:747) at androidx.compose.foundation.gestures.ScrollableNestedScrollConnection.onPostScroll-DzOQY0M(ScrollableNestedScrollConnection.java:912) at androidx.compose.ui.input.nestedscroll.NestedScrollNode.onPostScroll-DzOQY0M(NestedScrollNode.kt:104) at androidx.compose.ui.input.nestedscroll.NestedScrollDispatcher.dispatchPostScroll-DzOQY0M(NestedScrollDispatcher.java:185) at androidx.compose.foundation.gestures.ScrollingLogic.performScroll-3eAAhYA(Scrollable.kt:732) at androidx.compose.foundation.gestures.ScrollingLogic.access$performScroll-3eAAhYA(ScrollingLogic.java:640) at androidx.compose.foundation.gestures.ScrollingLogic$nestedScrollScope$1.scrollByWithOverscroll-OzD1aCk(Scrollable.kt:703) at androidx.compose.foundation.gestures.ScrollingLogic$doFlingAnimation$2$reverseScope$1.scrollBy(Scrollable.kt:825) at androidx.compose.foundation.gestures.DefaultFlingBehavior$performFling$2.invokeSuspend$lambda$0(DefaultFlingBehavior.java:983) at androidx.compose.animation.core.SuspendAnimationKt.doAnimationFrame(SuspendAnimation.kt:361) at androidx.compose.animation.core.SuspendAnimationKt.doAnimationFrameWithScale(SuspendAnimation.kt:339) at androidx.compose.animation.core.SuspendAnimationKt.animate$lambda$11(SuspendAnimation.kt:281) at androidx.compose.animation.core.SuspendAnimationKt.callWithFrameNanos$lambda$12(SuspendAnimation.kt:305) at androidx.compose.runtime.BroadcastFrameClock$FrameAwaiter.resume(BroadcastFrameClock.java:57) at androidx.compose.runtime.BroadcastFrameClock.sendFrame(BroadcastFrameClock.kt:90) at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2.invokeSuspend$lambda$22(Recomposer.java:605) at androidx.compose.ui.platform.AndroidUiFrameClock$withFrameNanos$2$callback$1.doFrame(AndroidUiFrameClock.android.kt:39) at androidx.compose.ui.platform.AndroidUiDispatcher.performFrameDispatch(AndroidUiDispatcher.java:108) at androidx.compose.ui.platform.AndroidUiDispatcher.access$performFrameDispatch(AndroidUiDispatcher.java:41) at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.doFrame(AndroidUiDispatcher.android.kt:69) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1869) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1880) at android.view.Choreographer.doCallbacks(Choreographer.java:1291) at android.view.Choreographer.doAnimationLoad(Choreographer.java:1148) at android.view.Choreographer.doFrame(Choreographer.java:1113) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1697) at android.os.Handler.handleCallback(Handler.java:959) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loopOnce(Looper.java:232) at android.os.Looper.loop(Looper.java:317) at android.app.ActivityThread.main(ActivityThread.java:8927) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:681) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:915)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions