-
Notifications
You must be signed in to change notification settings - Fork 301
Description
Describe the bug
App randomly crash when open chat with gif
SDK version
- 6.22.1
To Reproduce
Steps to reproduce the behavior:
- Go to chat with GIF and scroll in chat or back with the random behavior app, and it will crash
- See error
Expected behavior
Crash should be fixed
Device:
- Vendor and model: Samsung Galaxy S23 Ultra
- Android version: Android 15
Crash trace log
` android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. Expected: main Calling: DefaultDispatcher-worker-28
at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:13300)
at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:3126)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:394)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:394)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at androidx.compose.ui.platform.AndroidComposeView.scheduleMeasureAndLayout(AndroidComposeView.android.kt:1516)
at androidx.compose.ui.platform.AndroidComposeView.onRequestMeasure(AndroidComposeView.android.kt:1603)
at androidx.compose.ui.node.Owner.onRequestMeasure$default(Owner.kt:173)
at androidx.compose.ui.node.LayoutNode.requestRemeasure$ui_release(LayoutNode.kt:1091)
at androidx.compose.ui.node.LayoutNode.requestRemeasure$ui_release$default(LayoutNode.kt:1084)
at androidx.compose.ui.platform.AndroidViewsHandler.requestLayout(AndroidViewsHandler.android.kt:97)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at androidx.constraintlayout.widget.ConstraintLayout.requestLayout(ConstraintLayout.java:3842)
at android.view.View.requestLayout(View.java:29465)
at androidx.constraintlayout.widget.ConstraintLayout.requestLayout(ConstraintLayout.java:3842)
at android.view.View.requestLayout(View.java:29465)
at androidx.recyclerview.widget.RecyclerView.requestLayout(RecyclerView.java:5019)
at android.view.View.requestLayout(View.java:29465)
at androidx.constraintlayout.widget.ConstraintLayout.requestLayout(ConstraintLayout.java:3842)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at androidx.constraintlayout.widget.ConstraintLayout.requestLayout(ConstraintLayout.java:3842)
at android.view.View.requestLayout(View.java:29465)
at androidx.constraintlayout.widget.ConstraintLayout.requestLayout(ConstraintLayout.java:3842)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.setFlags(View.java:19580)
at android.view.View.setVisibility(View.java:14000)
at io.getstream.chat.android.ui.feature.messages.list.adapter.view.internal.GiphyMediaAttachmentView$loadGiphy$1.invokeSuspend$lambda$1(GiphyMediaAttachmentView.kt:225)
at io.getstream.chat.android.ui.feature.messages.list.adapter.view.internal.GiphyMediaAttachmentView$loadGiphy$1.$r8$lambda$Q3QAaOTdb6u1X2jn7D3dEP_r2gE(Unknown Source:0)
at io.getstream.chat.android.ui.feature.messages.list.adapter.view.internal.GiphyMediaAttachmentView$loadGiphy$1$$ExternalSyntheticLambda1.invoke(D8$$SyntheticClass:0)
at io.getstream.chat.android.ui.common.images.internal.CoilStreamImageLoader$loadAndResize$drawable$1$invokeSuspend$$inlined$listener$1.onError(ImageRequest.kt:496)
at coil3.RealImageLoader.onError(RealImageLoader.kt:205)
at coil3.RealImageLoader.execute(RealImageLoader.kt:158)
at coil3.RealImageLoader.execute(RealImageLoader.kt:77)
at io.getstream.chat.android.ui.common.images.internal.CoilStreamImageLoader$loadAndResize$drawable$1.invokeSuspend(CoilStreamImageLoader.kt:157)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@161b64b, Dispatchers.Main]
android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. Expected: main Calling: DefaultDispatcher-worker-28
at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:13300)
at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:3126)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:394)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:394)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at androidx.compose.ui.platform.AndroidComposeView.scheduleMeasureAndLayout(AndroidComposeView.android.kt:1516)
at androidx.compose.ui.platform.AndroidComposeView.onRequestMeasure(AndroidComposeView.android.kt:1603)
at androidx.compose.ui.node.Owner.onRequestMeasure$default(Owner.kt:173)
at androidx.compose.ui.node.LayoutNode.requestRemeasure$ui_release(LayoutNode.kt:1091)
at androidx.compose.ui.node.LayoutNode.requestRemeasure$ui_release$default(LayoutNode.kt:1084)
at androidx.compose.ui.platform.AndroidViewsHandler.requestLayout(AndroidViewsHandler.android.kt:97)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at androidx.constraintlayout.widget.ConstraintLayout.requestLayout(ConstraintLayout.java:3842)
at android.view.View.requestLayout(View.java:29465)
at androidx.constraintlayout.widget.ConstraintLayout.requestLayout(ConstraintLayout.java:3842)
at android.view.View.requestLayout(View.java:29465)
at androidx.recyclerview.widget.RecyclerView.requestLayout(RecyclerView.java:5019)
at android.view.View.requestLayout(View.java:29465)
at androidx.constraintlayout.widget.ConstraintLayout.requestLayout(ConstraintLayout.java:3842)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at androidx.constraintlayout.widget.ConstraintLayout.requestLayout(ConstraintLayout.java:3842)
at android.view.View.requestLayout(View.java:29465)
at androidx.constraintlayout.widget.ConstraintLayout.requestLayout(ConstraintLayout.java:3842)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.setFlags(View.java:19580)
at android.view.View.setVisibility(View.java:14000)
at io.getstream.chat.android.ui.feature.messages.list.adapter.view.internal.GiphyMediaAttachmentView$loadGiphy$1.invokeSuspend$lambda$1(GiphyMediaAttachmentView.kt:225)
at io.getstream.chat.android.ui.feature.messages.list.adapter.view.internal.GiphyMediaAttachmentView$loadGiphy$1.$r8$lambda$Q3QAaOTdb6u1X2jn7D3dEP_r2gE(Unknown Source:0)
at io.getstream.chat.android.ui.feature.messages.list.adapter.view.internal.GiphyMediaAttachmentView$loadGiphy$1$$ExternalSyntheticLambda1.invoke(D8$$SyntheticClass:0)
at io.getstream.chat.android.ui.common.images.internal.CoilStreamImageLoader$loadAndResize$drawable$1$invokeSuspend$$inlined$listener$1.onError(ImageRequest.kt:496)
at coil3.RealImageLoader.onError(RealImageLoader.kt:205)
at coil3.RealImageLoader.execute(RealImageLoader.kt:158)
at coil3.RealImageLoader.execute(RealImageLoader.kt:77)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@161b64b, Dispatchers.Main]
android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. Expected: main Calling: DefaultDispatcher-worker-28
at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:13300)
at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:3126)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:394)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:394)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at androidx.compose.ui.platform.AndroidComposeView.scheduleMeasureAndLayout(AndroidComposeView.android.kt:1516)
at androidx.compose.ui.platform.AndroidComposeView.onRequestMeasure(AndroidComposeView.android.kt:1603)
at androidx.compose.ui.node.Owner.onRequestMeasure$default(Owner.kt:173)
at androidx.compose.ui.node.LayoutNode.requestRemeasure$ui_release(LayoutNode.kt:1091)
at androidx.compose.ui.node.LayoutNode.requestRemeasure$ui_release$default(LayoutNode.kt:1084)
at androidx.compose.ui.platform.AndroidViewsHandler.requestLayout(AndroidViewsHandler.android.kt:97)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at androidx.constraintlayout.widget.ConstraintLayout.requestLayout(ConstraintLayout.java:3842)
at android.view.View.requestLayout(View.java:29465)
at androidx.constraintlayout.widget.ConstraintLayout.requestLayout(ConstraintLayout.java:3842)
at android.view.View.requestLayout(View.java:29465)
at androidx.recyclerview.widget.RecyclerView.requestLayout(RecyclerView.java:5019)
at android.view.View.requestLayout(View.java:29465)
at androidx.constraintlayout.widget.ConstraintLayout.requestLayout(ConstraintLayout.java:3842)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.requestLayout(View.java:29465)
at androidx.constraintlayout.widget.ConstraintLayout.requestLayout(ConstraintLayout.java:3842)
at android.view.View.requestLayout(View.java:29465)
at androidx.constraintlayout.widget.ConstraintLayout.requestLayout(ConstraintLayout.java:3842)
at android.view.View.requestLayout(View.java:29465)
at android.view.View.setFlags(View.java:19580)
at android.view.View.setVisibility(View.java:14000)
at io.getstream.chat.android.ui.feature.messages.list.adapter.view.internal.GiphyMediaAttachmentView$loadGiphy$1.invokeSuspend$lambda$1(GiphyMediaAttachmentView.kt:225)
at io.getstream.chat.android.ui.feature.messages.list.adapter.view.internal.GiphyMediaAttachmentView$loadGiphy$1.$r8$lambda$Q3QAaOTdb6u1X2jn7D3dEP_r2gE(Unknown Source:0)
at io.getstream.chat.android.ui.feature.messages.list.adapter.view.internal.GiphyMediaAttachmentView$loadGiphy$1$$ExternalSyntheticLambda1.invoke(D8$$SyntheticClass:0)
at io.getstream.chat.android.ui.common.images.internal.CoilStreamImageLoader$loadAndResize$drawable$1$invokeSuspend$$inlined$listener$1.onError(ImageRequest.kt:496)
at coil3.RealImageLoader.onError(RealImageLoader.kt:205)
at coil3.RealImageLoader.execute(RealImageLoader.kt:158)
at coil3.RealImageLoader.execute(RealImageLoader.kt:77)
at io.getstream.chat.android.ui.common.images.internal.CoilStreamImageLoader$loadAndResize$drawable$1.invokeSuspend(CoilStreamImageLoader.kt:157)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@161b64b, Dispatchers.Main]
`