Checklist
Describe the bug
Exception
Crash log
androidx.media3.exoplayer.ExoPlaybackException: Source error
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleIoException(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:17)
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:456)
at android.os.Handler.dispatchMessageImpl(Handler.java:138)
at android.os.Handler.dispatchMessage(Handler.java:125)
at android.os.Looper.loopOnce(Looper.java:296)
at android.os.Looper.loop(Looper.java:397)
at android.os.HandlerThread.run(HandlerThread.java:139)
Caused by: java.io.IOException: java.lang.Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'long com.grack.nanojson.JsonObject.getLong(java.lang.String, long)' on a null object reference
at org.schabi.newpipe.player.mediasource.FailedMediaSource.maybeThrowSourceInfoRefreshError(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:10)
at androidx.media3.exoplayer.source.MaskingMediaPeriod.maybeThrowPrepareError(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:13)
at androidx.media3.exoplayer.source.MaskingMediaPeriod.maybeThrowPrepareError(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:5)
at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:234)
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:386)
... 5 more
Caused by: java.lang.Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'long com.grack.nanojson.JsonObject.getLong(java.lang.String, long)' on a null object reference
at org.schabi.newpipe.player.playqueue.PlayQueueItem$$ExternalSyntheticLambda0.apply(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:16)
at org.brotli.dec.IntReader.onError(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:23)
at org.brotli.dec.IntReader.onError(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:73)
at org.brotli.dec.IntReader.onError(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:160)
at io.reactivex.rxjava3.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.onError(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:3)
at io.reactivex.rxjava3.internal.operators.maybe.MaybeToSingle$ToSingleMaybeSubscriber.onError(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:38)
at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onError(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:43)
at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.onError(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:3)
at io.reactivex.rxjava3.internal.operators.maybe.MaybeFromSingle$FromSingleObserver.onError(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:20)
at org.brotli.dec.IntReader.onError(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:89)
at io.reactivex.rxjava3.internal.operators.single.SingleJust.subscribeActual(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:56)
at io.reactivex.rxjava3.core.Single.subscribe(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:6)
at io.reactivex.rxjava3.internal.operators.single.SingleDoOnEvent.subscribeActual(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:19)
at io.reactivex.rxjava3.core.Single.subscribe(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:6)
at io.reactivex.rxjava3.internal.operators.maybe.MaybeDefer.subscribeActual(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:16)
at io.reactivex.rxjava3.core.Maybe.subscribe(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:1)
at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:87)
at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:12)
at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:44)
at io.reactivex.rxjava3.internal.operators.flowable.FlowableDefer.subscribeActual(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:26)
at io.reactivex.rxjava3.core.Flowable.subscribe(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:6)
at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:9)
at io.reactivex.rxjava3.core.Maybe.subscribe(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:1)
at io.reactivex.rxjava3.internal.operators.single.SingleJust.subscribeActual(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:87)
at io.reactivex.rxjava3.core.Single.subscribe(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:6)
at io.reactivex.rxjava3.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:5)
at io.reactivex.rxjava3.core.Scheduler$DisposeTask.run(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:10)
at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.run(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:22)
at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.call(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:1)
at java.util.concurrent.FutureTask.run(FutureTask.java:328)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:323)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1100)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:1572)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'long com.grack.nanojson.JsonObject.getLong(java.lang.String, long)' on a null object reference
at org.schabi.newpipe.extractor.services.soundcloud.extractors.SoundcloudStreamExtractor.getId(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:7)
at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:13)
at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda3.call(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:319)
at io.reactivex.rxjava3.internal.operators.single.SingleJust.subscribeActual(r8-map-id-6f072df307b799195dd3883d1c4bee5ce6988e5e6005b4134db697bfa6a5e1f8:27)
... 23 more
Version
5.2.4 beta
Frequency
Always (100% of the time)
Device
Pixel 6a, Android 17 (graphene os)
Steps to reproduce the bug
- Open https://soundcloud.com/marc_adriano/the-disciples-root-of-creation
Additional context
Some SoundCloud links could not be played, the app gets stuck in an error report loop.
Happens to about 20% of SoundCloud links I've come across
Checklist
Describe the bug
Exception
Crash log
Version
5.2.4 beta
Frequency
Always (100% of the time)
Device
Pixel 6a, Android 17 (graphene os)
Steps to reproduce the bug
Additional context
Some SoundCloud links could not be played, the app gets stuck in an error report loop.
Happens to about 20% of SoundCloud links I've come across