This repository was archived by the owner on Jan 31, 2026. It is now read-only.
Description Checklist
Describe the bug
The app crashes when I click a playlist that was previously deleted from the bookmarks page.
Frequency
Always (100% of the time)
Device
OPPO A79 5G,Android 15
Steps to reproduce the bug
Create a playlist
Go to the Bookmarks page
Delete the playlist
Click the same playlist
The app crashes
Additional context
Crash log (NullPointerException in PlaylistDetailViewModel):
{"os":"Linux Android 15 - 35","device":"OPPO CPH2557 (OP573DL1)","app_version":"1.0.1 (100100)","timestamp":1769744567857,"language":"zh_TW_#Hant","timezone":"Asia/Taipei (UTC+8:00)","task":"UNKNOWN","request":null,"stacktrace":"java.lang.NullPointerException\n\tat project.pipepipe.app.viewmodel.PlaylistDetailViewModel.loadPlaylistInternal$lambda$2(PlaylistDetailViewModel.kt:85)\n\tat project.pipepipe.app.viewmodel.PlaylistDetailViewModel.$r8$lambda$e7d15rRB5ymo6RWIm5dXCyqg8TM(PlaylistDetailViewModel.kt:0)\n\tat project.pipepipe.app.viewmodel.PlaylistDetailViewModel$$ExternalSyntheticLambda12.invoke(R8$$SyntheticClass:0)\n\tat project.pipepipe.app.viewmodel.BaseViewModel.setState(BaseViewModel.kt:232)\n\tat project.pipepipe.app.viewmodel.PlaylistDetailViewModel.loadPlaylistInternal(PlaylistDetailViewModel.kt:81)\n\tat project.pipepipe.app.viewmodel.PlaylistDetailViewModel.access$loadPlaylistInternal(PlaylistDetailViewModel.kt:30)\n\tat project.pipepipe.app.viewmodel.PlaylistDetailViewModel$loadPlaylistInternal$1.invokeSuspend(PlaylistDetailViewModel.kt:0)\n\tat kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)\n\tat kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)\n\tat android.os.Handler.handleCallback(Handler.java:973)\n\tat android.os.Handler.dispatchMessage(Handler.java:100)\n\tat android.os.Looper.loopOnce(Looper.java:282)\n\tat android.os.Looper.loop(Looper.java:387)\n\tat android.app.ActivityThread.main(ActivityThread.java:9500)\n\tat java.lang.reflect.Method.invoke(Native Method)\n\tat com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:600)\n\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1005)\n\tSuppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@9c64e3c, Dispatchers.Main.immediate]\n"}
Reactions are currently unavailable
Checklist
Describe the bug
The app crashes when I click a playlist that was previously deleted from the bookmarks page.
Frequency
Always (100% of the time)
Device
OPPO A79 5G,Android 15
Steps to reproduce the bug
Additional context
Crash log (NullPointerException in PlaylistDetailViewModel):
{"os":"Linux Android 15 - 35","device":"OPPO CPH2557 (OP573DL1)","app_version":"1.0.1 (100100)","timestamp":1769744567857,"language":"zh_TW_#Hant","timezone":"Asia/Taipei (UTC+8:00)","task":"UNKNOWN","request":null,"stacktrace":"java.lang.NullPointerException\n\tat project.pipepipe.app.viewmodel.PlaylistDetailViewModel.loadPlaylistInternal$lambda$2(PlaylistDetailViewModel.kt:85)\n\tat project.pipepipe.app.viewmodel.PlaylistDetailViewModel.$r8$lambda$e7d15rRB5ymo6RWIm5dXCyqg8TM(PlaylistDetailViewModel.kt:0)\n\tat project.pipepipe.app.viewmodel.PlaylistDetailViewModel$$ExternalSyntheticLambda12.invoke(R8$$SyntheticClass:0)\n\tat project.pipepipe.app.viewmodel.BaseViewModel.setState(BaseViewModel.kt:232)\n\tat project.pipepipe.app.viewmodel.PlaylistDetailViewModel.loadPlaylistInternal(PlaylistDetailViewModel.kt:81)\n\tat project.pipepipe.app.viewmodel.PlaylistDetailViewModel.access$loadPlaylistInternal(PlaylistDetailViewModel.kt:30)\n\tat project.pipepipe.app.viewmodel.PlaylistDetailViewModel$loadPlaylistInternal$1.invokeSuspend(PlaylistDetailViewModel.kt:0)\n\tat kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)\n\tat kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)\n\tat android.os.Handler.handleCallback(Handler.java:973)\n\tat android.os.Handler.dispatchMessage(Handler.java:100)\n\tat android.os.Looper.loopOnce(Looper.java:282)\n\tat android.os.Looper.loop(Looper.java:387)\n\tat android.app.ActivityThread.main(ActivityThread.java:9500)\n\tat java.lang.reflect.Method.invoke(Native Method)\n\tat com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:600)\n\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1005)\n\tSuppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@9c64e3c, Dispatchers.Main.immediate]\n"}