Player crashes after 3 minutes while screen off
Checklist
- [X] I am able to reproduce the bug with the latest version.
- [X] I made sure that there are no existing issues - open or closed - which I could contribute my information to.
- [X] I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise.
- [X] This issue contains only one bug.
- [X] I have read and understood the contribution guidelines.
Affected version
0.23.1
Steps to reproduce the bug
- Play video/audio with screen off.
- After 3 minutes the video crashes forcing me to unlock screen in order for video/music to start playing again.
Expected behavior
Video continues to play while screen is off.
Actual behavior
Video crashes after 3 minutes while screen if off. While screen is on there's no issue.
Screenshots/Screen recordings
No response
Logs
Exception
- User Action: play stream
- Request: Player error[type=ERROR_CODE_IO_NETWORK_CONNECTION_TIMEOUT] occurred while playing https://www.youtube.com/watch?v=d5nJqUlvzmE
- Content Country: US
- Content Language: en-US
- App Language: en_US
- Service: YouTube
- Version: 0.23.1
- OS: Linux Android 12 - 31
Crash log
com.google.android.exoplayer2.ExoPlaybackException: Source error
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:641)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:613)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: java.net.SocketTimeoutException: failed to connect to rr1---sn-vgqsknse.googlevideo.com/2607:f8b0:4009:d::6 (port 443) from /fc00:bbbb:bbbb:bb01::2c:4026 (port 48808) after 8000ms
at org.schabi.newpipe.player.datasource.YoutubeHttpDataSource.open(YoutubeHttpDataSource.java:389)
at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:258)
at com.google.android.exoplayer2.upstream.TeeDataSource.open(TeeDataSource.java:52)
at com.google.android.exoplayer2.upstream.cache.CacheDataSource.openNextSource(CacheDataSource.java:786)
at com.google.android.exoplayer2.upstream.cache.CacheDataSource.open(CacheDataSource.java:599)
at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:84)
at com.google.android.exoplayer2.source.chunk.ContainerMediaChunk.load(ContainerMediaChunk.java:124)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:412)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)
Caused by: java.net.SocketTimeoutException: failed to connect to rr1---sn-vgqsknse.googlevideo.com/2607:f8b0:4009:d::6 (port 443) from /fc00:bbbb:bbbb:bb01::2c:4026 (port 48808) after 8000ms
at libcore.io.IoBridge.connectErrno(IoBridge.java:236)
at libcore.io.IoBridge.connect(IoBridge.java:180)
at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
at java.net.Socket.connect(Socket.java:621)
at com.android.okhttp.internal.Platform.connectSocket(Platform.java:182)
at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:145)
at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:116)
at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:186)
at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:128)
at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:97)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:289)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:232)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:465)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:131)
at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:90)
at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:30)
at org.schabi.newpipe.player.datasource.YoutubeHttpDataSource.makeConnection(YoutubeHttpDataSource.java:704)
at org.schabi.newpipe.player.datasource.YoutubeHttpDataSource.makeConnection(YoutubeHttpDataSource.java:548)
at org.schabi.newpipe.player.datasource.YoutubeHttpDataSource.open(YoutubeHttpDataSource.java:383)
... 10 more
Affected Android/Custom ROM version
Android 12/4.1 One UI
Affected device model
Samsung S10 plus
Additional information
Works fine on galaxy s9 plus, android 10/ 2.5 One UI
Are battery optimizations disabled for the Newpipe app? If this doesn't help then it's a problem with the application itself.
Follow steps at dontkillmyapp.com
I replied back via email, but I don't see the replies. Changed settings and rebooted phone. Will follow up later today. Appreciate the help
Same issue after changes were made...
Confirming the bug. But not sure if it was the same as in start post. I had stable crash after few minutes after video playback. Independently on screen turned on or off.
Soultion worked for me on android 4.4 : Settings -> Screen -> Sleep time => set to 30 secs(was 5 mins in my case).
Follow steps at dontkillmyapp.com
According to this website, on Samsung phones, even disabling battery optimizations the phone may still decide to kill the running service.
I tried it on my phone (Samsung Galaxy A53, running OneUI 5.1, Android 13) and even with all battery optimizations disabled I still get a "Network Error" every 2-3 minutes.
I wonder if there's anything NewPipe could do to bypass that
I believe I have the same issue. Happens when switching context away from newpipe. Fails after 1 min exactly.
When pressing play in the background, the app seems to be suspended right away and is reloaded upon reopening.
Device is a Samsung S10e.
Crash report from when switching context, after 1 min:
Exception
- User Action: play stream
- Request: Player error[type=ERROR_CODE_IO_NETWORK_CONNECTION_TIMEOUT] occurred while playing https://www.youtube.com/watch?v=Toq9YLl49KM
- Content Country: DK
- Content Language: da-DK
- App Language: da_DK
- Service: YouTube
- Version: 0.24.0
- OS: Linux samsung/beyond0lteeea/beyond0:12/SP1A.210812.016/G970FXXUGHVJ5:user/release-keys 12 - 31
Crash log
com.google.android.exoplayer2.ExoPlaybackException: Source error
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:632)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:604)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: java.net.SocketTimeoutException: failed to connect to rr2---sn-uqj-55gz.googlevideo.com/95.166.96.13 (port 443) from /192.168.1.98 (port 58462) after 8000ms
at org.schabi.newpipe.player.datasource.YoutubeHttpDataSource.open(YoutubeHttpDataSource.java:389)
at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:258)
at com.google.android.exoplayer2.upstream.TeeDataSource.open(TeeDataSource.java:52)
at com.google.android.exoplayer2.upstream.cache.CacheDataSource.openNextSource(CacheDataSource.java:786)
at com.google.android.exoplayer2.upstream.cache.CacheDataSource.open(CacheDataSource.java:599)
at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:84)
at com.google.android.exoplayer2.source.chunk.ContainerMediaChunk.load(ContainerMediaChunk.java:124)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:412)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)
Caused by: java.net.SocketTimeoutException: failed to connect to rr2---sn-uqj-55gz.googlevideo.com/95.166.96.13 (port 443) from /192.168.1.98 (port 58462) after 8000ms
at libcore.io.IoBridge.connectErrno(IoBridge.java:236)
at libcore.io.IoBridge.connect(IoBridge.java:180)
at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
at java.net.Socket.connect(Socket.java:621)
at com.android.okhttp.internal.Platform.connectSocket(Platform.java:182)
at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:145)
at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:116)
at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:186)
at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:128)
at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:97)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:289)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:232)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:465)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:131)
at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:90)
at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:30)
at org.schabi.newpipe.player.datasource.YoutubeHttpDataSource.makeConnection(YoutubeHttpDataSource.java:704)
at org.schabi.newpipe.player.datasource.YoutubeHttpDataSource.makeConnection(YoutubeHttpDataSource.java:548)
at org.schabi.newpipe.player.datasource.YoutubeHttpDataSource.open(YoutubeHttpDataSource.java:383)
... 10 more
Just adding my voice to the mix since this doesn't seem to be getting any traction. In my particular case on lineageOS 20 with battery set to unrestricted, I get these network error messages with the screen off, but the app doesn't crash like it used to when I was on an older version of android--it just won't let me play any videos, requiring me to restart newpipe altogether. Switching to a different app for the time being since this has wasted close to a dozen hours within the last year for me and still isn't fixed or addressed.
I am interested in fixing this issue, is it possible that this issue can be assigned to me? It seems to be related to the background process. This can possibly be achieved by adding a separate task that always refreshes and shows notification in the menu so that user can confirm its background playing or enable a hidden mini player.
See https://github.com/TeamNewPipe/NewPipe/issues/5654#issuecomment-1754361499
I guess this is OneUI issue. I was on Lineage, Graphene & now on A14 GSI. Background play never stopped on mine.
Anyone with this issue using Rethink DNS or similiar blocker? I noticed that removing it resolves the NewPipe background play interruption.
I went down this road after trying a few other apps similar to NewPipe and the interruption happend on all of those.
Maybe a domain is being blocked that needs to be accessed for continuation, or something.
No issues using Cloudfare on pdnsf.
DOT 1.1.1.1 (853) in both vpnless root mode as well as VPN mode.
Even tried different host files from Steven.
Even tested their private DNS one.one.one.one as well as dns.adguard.com in my android network settings. No issues whatsoever.
I think Rethink DNS might be the culprit.
Might be, but also could be my specific filter combination avaliable from Rethink app. I didn't go too deep, just noticed it worked since uninstalling Rethink (I switched to Mullvad dns).
I have been using NewPipe on my Samsung M21 since OneUI 2.5 to OneUI 4.1 Android 12(Same as OP) now. I always use background play but never faced any issues like this. Even without removing Background restrictions and with apps like SaverTuner, the app never gave any network error.
I guess this is OneUI issue. I was on Lineage, Graphene & now on A14 GSI. Background play never stopped on mine.
It's definitely not a OneUI issue else more users would have reported same.
Try disabling Adaptive battery from Device Care @1Olegna @developedby @eldahl