Skip to content

[Bug] some SoundCloud links could not be played #2714

Description

@doogle11

Checklist

  • I make sure that the issue is NOT a duplicate of pinned issues
  • I make sure I am using the LATEST version - check here
  • I understand that issues with limited impact, such as those occurring on specific devices or under specific network conditions, will not be fixed
  • I have attached the error report in the issue

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

  1. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions