[Bug] Crash due to duplicate key in feed list
Checklist
- [x] I make sure that the issue is NOT a duplicate of pinned issues
- [x] I make sure I am using the LATEST version - check here
- [x] I understand that issues with limited impact, such as those occurring on specific devices or under specific network conditions, will not be fixed
- [x] I have attached the error report in the issue
Version
5.0 (beta)
Describe the bug
{"os":"Linux Android 16 - 36","device":"OnePlus PJZ110 (OP5D0DL1)","app_version":"5.0.0-beta2 (2001)","timestamp":1762501491512,"language":"en_IE","timezone":"Asia/Shanghai (UTC+8:00)","task":"UNKNOWN","request":null,"stacktrace":"java.lang.IllegalArgumentException: Key "https://www.bilibili.com/video/BV1QG2FBTEdK?p=1" was already used. If you are using LazyColumn/Row please make sure you provide a unique key for each item.\n\tat androidx.compose.ui.internal.InlineClassHelperKt.throwIllegalArgumentException(InlineClassHelper.kt:36)\n\tat androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose(SubcomposeLayout.kt:104)\n\tat androidx.compose.ui.layout.LayoutNodeSubcompositionsState$Scope.subcompose(SubcomposeLayout.kt:1231)\n\tat androidx.compose.foundation.lazy.layout.LazyLayoutMeasureScopeImpl.measure-0kLqBqw(LazyLayoutMeasureScope.kt:124)\n\tat androidx.compose.foundation.lazy.LazyListMeasuredItemProvider.getAndMeasure-0kLqBqw(LazyListMeasuredItemProvider.kt:55)\n\tat androidx.compose.foundation.lazy.LazyListMeasuredItemProvider.getAndMeasure-0kLqBqw$default(LazyListMeasuredItemProvider.kt:49)\n\tat androidx.compose.foundation.lazy.LazyListMeasureKt.measureLazyList-LCrQqZ4(LazyListMeasure.kt:222)\n\tat androidx.compose.foundation.lazy.LazyListKt$rememberLazyListMeasurePolicy$1$1.invoke-0kLqBqw(LazyList.kt:352)\n\tat androidx.compose.foundation.lazy.LazyListKt$rememberLazyListMeasurePolicy$1$1.invoke(LazyList.kt:200)\n\tat androidx.compose.foundation.lazy.layout.LazyLayoutKt$LazyLayout$1$2$1.invoke-0kLqBqw(LazyLayout.kt:78)\n\tat androidx.compose.foundation.lazy.layout.LazyLayoutKt$LazyLayout$1$2$1.invoke(LazyLayout.kt:76)\n\tat androidx.compose.ui.layout.LayoutNodeSubcompositionsState$createMeasurePolicy$1.measure-3p2s80s(SubcomposeLayout.kt:914)\n\tat androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:128)\n\tat androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:794)\n\tat androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:190)\n\tat androidx.compose.foundation.lazy.layout.LazyLayoutBeyondBoundsModifierNode.measure-3p2s80s(LazyLayoutBeyondBoundsModifierLocal.kt:118)\n\tat androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:190)\n\tat androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:794)\n\tat androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:190)\n\tat androidx.compose.foundation.layout.PaddingNode.measure-3p2s80s(Padding.kt:401)\n\tat androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:190)\n\tat androidx.compose.foundation.layout.PaddingNode.measure-3p2s80s(Padding.kt:401)\n\tat androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:190)\n\tat androidx.compose.ui.node.MeasurePassDelegate$performMeasureBlock$1.invoke(MeasurePassDelegate.kt:173)\n\tat androidx.compose.ui.node.MeasurePassDelegate$performMeasureBlock$1.invoke(MeasurePassDelegate.kt:172)\n\tat androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:502)\n\tat androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:464)\n\tat androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:248)\n\tat androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:124)\n\tat androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:107)\n\tat androidx.compose.ui.node.MeasurePassDelegate.performMeasure-BRTryo0$ui_release(MeasurePassDelegate.kt:426)\n\tat androidx.compose.ui.node.MeasurePassDelegate.remeasure-BRTryo0(MeasurePassDelegate.kt:477)\n\tat androidx.compose.ui.node.MeasurePassDelegate.measure-BRTryo0(MeasurePassDelegate.kt:454)\n\tat androidx.compose.foundation.layout.BoxMeasurePolicy.measure-3p2s80s(Box.kt:168)\n\tat androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:128)\n\tat androidx.compose.ui.node.MeasurePassDelegate$performMeasureBlock$1.invoke(MeasurePassDelegate.kt:173)\n\tat androidx.compose.ui.node.MeasurePassDelegate$performMeasureBlock$1.invoke(MeasurePassDelegate.kt:172)\n\tat androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:502)\n\tat androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:464)\n\tat androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:248)\n\tat androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:124)\n\tat androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:107)\n\tat androidx.compose.ui.node.MeasurePassDelegate.performMeasure-BRTryo0$ui_release(MeasurePassDelegate.kt:426)\n\tat androidx.compose.ui.node.MeasurePassDelegate.remeasure-BRTryo0(MeasurePassDelegate.kt:477)\n\tat androidx.compose.ui.node.MeasurePassDelegate.measure-BRTryo0(MeasurePassDelegate.kt:454)\n\tat androidx.compose.foundation.layout.RowColumnMeasurePolicyKt.measure(RowColumnMeasurePolicy.kt:126)\n\tat androidx.compose.foundation.layout.RowColumnMeasurePolicyKt.measure$default(RowColumnMeasurePolicy.kt:77)\n\tat androidx.compose.foundation.layout.ColumnMeasurePolicy.measure-3p2s80s(Column.kt:208)\n\tat androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:128)\n\tat androidx.compose.foundation.layout.FillNode.measure-3p2s80s(Size.kt:721)\n\tat androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:190)\n\tat androidx.compose.ui.node.MeasurePassDelegate$performMeasureBlock$1.invoke(MeasurePassDelegate.kt:173)\n\tat androidx.compose.ui.node.MeasurePassDelegate$performMeasureBlock$1.invoke(MeasurePassDelegate.kt:172)\n\tat androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:151)\n\tat androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:464)\n\tat androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:248)\n\tat androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:124)\n\tat androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:107)\n\tat androidx.compose.ui.node.MeasurePassDelegate.performMeasure-BRTryo0$ui_release(MeasurePassDelegate.kt:426)\n\tat androidx.compose.ui.node.MeasurePassDelegate.remeasure-BRTryo0(MeasurePassDelegate.kt:477)\n\tat androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release(LayoutNode.kt:1282)\n\tat androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release$default(LayoutNode.kt:1275)\n\tat androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure-sdFAvZA(MeasureAndLayoutDelegate.kt:380)\n\tat androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:595)\n\tat androidx.compose.ui.node.MeasureAndLayoutDelegate.access$remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:43)\n\tat androidx.compose.ui.node.MeasureAndLayoutDelegate.measureAndLayout(MeasureAndLayoutDelegate.kt:402)\n\tat androidx.compose.ui.platform.AndroidComposeView.measureAndLayout(AndroidComposeView.android.kt:1558)\n\tat androidx.compose.ui.node.Owner.measureAndLayout$default(Owner.kt:243)\n\tat androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(AndroidComposeView.android.kt:1898)\n\tat android.view.View.draw(View.java:25097)\n\tat android.view.View.updateDisplayListIfDirty(View.java:23937)\n\tat android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4554)\n\tat android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4527)\n\tat android.view.View.updateDisplayListIfDirty(View.java:23891)\n\tat android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4554)\n\tat android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4527)\n\tat android.view.View.updateDisplayListIfDirty(View.java:23891)\n\tat android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4554)\n\tat android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4527)\n\tat android.view.View.updateDisplayListIfDirty(View.java:23891)\n\tat android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4554)\n\tat android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4527)\n\tat android.view.View.updateDisplayListIfDirty(View.java:23891)\n\tat android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:694)\n\tat android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:700)\n\tat android.view.ThreadedRenderer.draw(ThreadedRenderer.java:798)\n\tat android.view.ViewRootImpl.draw(ViewRootImpl.java:5837)\n\tat android.view.ViewRootImpl.performDraw(ViewRootImpl.java:5488)\n\tat android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4482)\n\tat android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3076)\n\tat android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10648)\n\tat android.view.Choreographer$CallbackRecord.run(Choreographer.java:1570)\n\tat android.view.Choreographer$CallbackRecord.run(Choreographer.java:1579)\n\tat android.view.Choreographer.doCallbacks(Choreographer.java:1179)\n\tat android.view.Choreographer.doFrame(Choreographer.java:1108)\n\tat android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1553)\n\tat android.os.Handler.handleCallback(Handler.java:995)\n\tat android.os.Handler.dispatchMessage(Handler.java:103)\n\tat android.os.Looper.loopOnce(Looper.java:248)\n\tat android.os.Looper.loop(Looper.java:338)\n\tat android.app.ActivityThread.main(ActivityThread.java:9115)\n\tat java.lang.reflect.Method.invoke(Native Method)\n\tat com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593)\n\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:939)\n"}
Frequency
Always (100% of the time)
Device
No response
Steps to reproduce the bug
No response
Additional context
No response