Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash when rotation the app on video start : Failed to obtain poToken, retrying #12045

Open
6 tasks done
PaulGOUX27 opened this issue Feb 16, 2025 · 1 comment
Open
6 tasks done
Labels
ASAP Issue needs to be fixed as soon as possible bug Issue is related to a bug youtube Service, https://www.youtube.com/

Comments

@PaulGOUX27
Copy link

Checklist

  • I am able to reproduce the bug with the latest version given here: CLICK THIS LINK.
  • I made sure that there are no existing issues - open or closed - which I could contribute my information to.
  • I have read the FAQ and my problem isn't listed.
  • I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise.
  • This issue contains only one bug.
  • I have read and understood the contribution guidelines.

Affected version

0.27.6

Steps to reproduce the bug

  1. Start the app
  2. Play any video
  3. Rotate your phone, not right after, wait 1 or 2 seconds, but before the video start
    -> NewPipe crash

Expected behavior

The app should switch to landscape, with a black screen before the video is loaded and start.

Actual behavior

The app crash. Furthermore, on the next start, the app is stuck in the initial loading. I need to wait for Android to propose the modal "NewPipe is not anwsering" and click on "Close the app". Then, it works again.

Screenshots/Screen recordings

2025-02-16-17-19-21.mp4

Logs

I found no logs on NewPipe. I fetched the following Log using Logcat, and it seems related. It's the last error, and occurred on each one of my tests.

2025-02-16 17:23:32.955 32760-1995  PoTokenProviderImpl     org.schabi.newpipe                   E  Failed to obtain poToken, retrying
                                                                                                    java.lang.RuntimeException: java.lang.InterruptedException
                                                                                                    	at io.reactivex.rxjava3.internal.util.ExceptionHelper.wrapOrThrow(ExceptionHelper.java:46)
                                                                                                    	at io.reactivex.rxjava3.internal.observers.BlockingMultiObserver.blockingGet(BlockingMultiObserver.java:89)
                                                                                                    	at io.reactivex.rxjava3.core.Single.blockingGet(Single.java:3645)
                                                                                                    	at org.schabi.newpipe.util.potoken.PoTokenProviderImpl.getWebClientPoToken(PoTokenProviderImpl.kt:100)
                                                                                                    	at org.schabi.newpipe.util.potoken.PoTokenProviderImpl.getWebClientPoToken(PoTokenProviderImpl.kt:31)
                                                                                                    	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.fetchHtml5Client(YoutubeStreamExtractor.java:916)
                                                                                                    	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.onFetchPage(YoutubeStreamExtractor.java:819)
                                                                                                    	at org.schabi.newpipe.extractor.Extractor.fetchPage(Extractor.java:60)
                                                                                                    	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:77)
                                                                                                    	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:72)
                                                                                                    	at org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:118)
                                                                                                    	at org.schabi.newpipe.util.ExtractorHelper.$r8$lambda$bVfA-5gb6gDc8jcAgcGWG5oH0FE(ExtractorHelper.java:0)
                                                                                                    	at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda3.call(R8$$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.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
                                                                                                    	at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4855)
                                                                                                    	at io.reactivex.rxjava3.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
                                                                                                    	at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5377)
                                                                                                    	at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:153)
                                                                                                    	at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78)
                                                                                                    	at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66)
                                                                                                    	at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42)
                                                                                                    	at io.reactivex.rxjava3.core.Flowable.subscribe(Flowable.java:16144)
                                                                                                    	at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
                                                                                                    	at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5377)
                                                                                                    	at io.reactivex.rxjava3.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
                                                                                                    	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:1145)
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
                                                                                                    	at java.lang.Thread.run(Thread.java:1012)
                                                                                                    Caused by: java.lang.InterruptedException
                                                                                                    	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1048)
                                                                                                    	at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:230)
                                                                                                    	at io.reactivex.rxjava3.internal.observers.BlockingMultiObserver.blockingGet(BlockingMultiObserver.java:86)
                                                                                                    	at io.reactivex.rxjava3.core.Single.blockingGet(Single.java:3645) 
                                                                                                    	at org.schabi.newpipe.util.potoken.PoTokenProviderImpl.getWebClientPoToken(PoTokenProviderImpl.kt:100) 
                                                                                                    	at org.schabi.newpipe.util.potoken.PoTokenProviderImpl.getWebClientPoToken(PoTokenProviderImpl.kt:31) 
                                                                                                    	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.fetchHtml5Client(YoutubeStreamExtractor.java:916) 
                                                                                                    	at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.onFetchPage(YoutubeStreamExtractor.java:819) 
                                                                                                    	at org.schabi.newpipe.extractor.Extractor.fetchPage(Extractor.java:60) 
                                                                                                    	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:77) 
                                                                                                    	at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:72) 
                                                                                                    	at org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:118) 
                                                                                                    	at org.schabi.newpipe.util.ExtractorHelper.$r8$lambda$bVfA-5gb6gDc8jcAgcGWG5oH0FE(ExtractorHelper.java:0) 
                                                                                                    	at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda3.call(R8$$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.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35) 
                                                                                                    	at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4855) 
                                                                                                    	at io.reactivex.rxjava3.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41) 
                                                                                                    	at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5377) 
                                                                                                    	at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:153) 
                                                                                                    	at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78) 
                                                                                                    	at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66) 
                                                                                                    	at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42) 
                                                                                                    	at io.reactivex.rxjava3.core.Flowable.subscribe(Flowable.java:16144) 
                                                                                                    	at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36) 
                                                                                                    	at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5377) 
                                                                                                    	at io.reactivex.rxjava3.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46) 
                                                                                                    	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:1145) 
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644) 
                                                                                                    	at java.lang.Thread.run(Thread.java:1012) 
2025-02-16 17:23:32.976 32760-342   OpenGLRenderer          org.schabi.newpipe                   E  Unable to match the desired swap behavior.

Affected Android/Custom ROM version

Android 14

Affected device model

Zenfone 9

Additional information

  • Both rotation from portrait to landscape and landspace to portrait make the app crash
  • The bug wasn't present in 0.27.5
@PaulGOUX27 PaulGOUX27 added bug Issue is related to a bug needs triage Issue is not yet ready for PR authors to take up labels Feb 16, 2025
@Stypox Stypox added ASAP Issue needs to be fixed as soon as possible youtube Service, https://www.youtube.com/ and removed needs triage Issue is not yet ready for PR authors to take up labels Feb 17, 2025
@Stypox
Copy link
Member

Stypox commented Feb 17, 2025

Thank you for the report, this will need to be fixed in the next version

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ASAP Issue needs to be fixed as soon as possible bug Issue is related to a bug youtube Service, https://www.youtube.com/
Projects
None yet
Development

No branches or pull requests

2 participants