Checklist
Affected version
0.28.0 Nightly / debug version for an unrelated PR
Steps to reproduce the bug
- Close NewPipe
- Share a SoundCloud playlist with NewPipe -> background player (I took one from SoundClouds main page: https://m.soundcloud.com/soundcloud-scenes/sets/dreams-emerging-indie)
- wait until NewPipe starts playing
- open NewPipe using the app launcher and not the notification
Expected behavior
No crash
Actual behavior
NewPipe crashes (see logs)
Screenshots/Screen recordings
No response
Logs
coil3.request.NullRequestDataException: The request's data is null.
at coil3.RealImageLoader.execute(RealImageLoader.kt:108)
at coil3.RealImageLoader.access$execute(RealImageLoader.kt:44)
at coil3.RealImageLoader$enqueue$job$1.invokeSuspend(RealImageLoader.kt:66)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(DispatchedContinuation.kt:359)
at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable(Cancellable.kt:26)
at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:358)
at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:124)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.async(Builders.common.kt:87)
at kotlinx.coroutines.BuildersKt.async(Unknown Source:1)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.async$default(Builders.common.kt:78)
at kotlinx.coroutines.BuildersKt.async$default(Unknown Source:1)
at coil3.RealImageLoader.enqueue(RealImageLoader.kt:65)
at org.schabi.newpipe.util.image.CoilHelper.loadImageDefault(CoilHelper.kt:160)
at org.schabi.newpipe.util.image.CoilHelper.loadDetailsThumbnail(CoilHelper.kt:118)
at org.schabi.newpipe.fragments.detail.VideoDetailFragment.updateOverlayData(VideoDetailFragment.kt:2218)
at org.schabi.newpipe.fragments.detail.VideoDetailFragment.cleanUp(VideoDetailFragment.kt:2048)
at org.schabi.newpipe.fragments.detail.VideoDetailFragment.access$cleanUp(VideoDetailFragment.kt:124)
at org.schabi.newpipe.fragments.detail.VideoDetailFragment$setupBottomPlayer$1.onStateChanged(VideoDetailFragment.kt:2140)
at com.google.android.material.bottomsheet.BottomSheetBehavior.setStateInternal(BottomSheetBehavior.java:1431)
at com.google.android.material.bottomsheet.BottomSheetBehavior$StateSettlingTracker$1.run(BottomSheetBehavior.java:2136)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1231)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1239)
at android.view.Choreographer.doCallbacks(Choreographer.java:899)
at android.view.Choreographer.doFrame(Choreographer.java:827)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1214)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7924)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
ACRA caught a IllegalArgumentException for org.schabi.newpipe.debug.addtoqueuemenuoption
java.lang.IllegalArgumentException: Page doesn't contain an URL
at org.schabi.newpipe.extractor.services.soundcloud.extractors.SoundcloudCommentsExtractor.getPage(SoundcloudCommentsExtractor.java:44)
at org.schabi.newpipe.extractor.comments.CommentsInfo.getMoreItems(CommentsInfo.java:79)
at org.schabi.newpipe.paging.CommentsSource$load$info$1.invokeSuspend(CommentsSource.kt:24)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:101)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:113)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:589)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:823)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:720)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:707)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [LazyStandaloneCoroutine{Cancelling}@1d75ab6, Dispatchers.Main.immediate]
Affected Android/Custom ROM version
No response
Affected device model
No response
Additional information
Opening the playlist's info page shows items but also gives this error while trying to load more items
Exception
- User Action: requested playlist
- Request: Loading more items: https://m.soundcloud.com/soundcloud-scenes/sets/dreams-emerging-indie
- Content Country: DE
- Content Language: de-DE
- App Language: de_DE
- Service: SoundCloud
- Timestamp: 2025-12-14T12:56:03.717+01:00
- Package: org.schabi.newpipe.debug.addtoqueuemenuoption
- Service: SoundCloud
- Version: 0.28.0
- OS: Linux Android 13 - 33
Crash log
org.schabi.newpipe.extractor.exceptions.ParsingException: Could not parse json response
at org.schabi.newpipe.extractor.services.soundcloud.extractors.SoundcloudPlaylistExtractor.getPage(SoundcloudPlaylistExtractor.java:207)
at org.schabi.newpipe.extractor.playlist.PlaylistInfo.getMoreItems(PlaylistInfo.java:84)
at org.schabi.newpipe.util.ExtractorHelper.lambda$getMorePlaylistItems$8(ExtractorHelper.java:161)
at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda2.call(D8$$SyntheticClass:0)
at io.reactivex.rxjava3.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:43)
at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4855)
at io.reactivex.rxjava3.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
at io.reactivex.rxjava3.core.Scheduler$DisposeTask.run(Scheduler.java:644)
at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:65)
at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:56)
at java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
at java.lang.Thread.run(Thread.java:1012)
Caused by: java.lang.NullPointerException: no track with id -2080638467 in response
at java.util.Objects.requireNonNull(Objects.java:245)
at org.schabi.newpipe.extractor.services.soundcloud.extractors.SoundcloudPlaylistExtractor.getPage(SoundcloudPlaylistExtractor.java:201)
... 14 more
Checklist
Affected version
0.28.0 Nightly / debug version for an unrelated PR
Steps to reproduce the bug
Expected behavior
No crash
Actual behavior
NewPipe crashes (see logs)
Screenshots/Screen recordings
No response
Logs
Affected Android/Custom ROM version
No response
Affected device model
No response
Additional information
Opening the playlist's info page shows items but also gives this error while trying to load more items
Exception
Crash log