Sometimes, deleting history will show an error screen.
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 read the FAQ and my problem isn't listed.
- [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.2
Steps to reproduce the bug
- Open history
- Tap and hold a history entry
- Tap delete
Expected behavior
Entry gets deleted
Actual behavior
Sorry, something went wrong error screen appears. However the history delete did go through successfully.
Screenshots/Screen recordings
https://user-images.githubusercontent.com/96967473/186441488-fa8a9100-78e0-4e54-9111-29dfab298baf.mp4
Logs
Exception
- User Action: something else
- Request: History Statistics
- Content Country: SG
- Content Language: en-SG
- App Language: en_SG
- Service: none
- Version: 0.23.2
- OS: Linux Android 12 - 32
Crash log
java.lang.IllegalStateException: Couldn't read row 1237, col 13 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
at android.database.CursorWindow.nativeGetLong(Native Method)
at android.database.CursorWindow.getLong(CursorWindow.java:536)
at android.database.AbstractWindowedCursor.getLong(AbstractWindowedCursor.java:78)
at org.schabi.newpipe.database.history.dao.StreamHistoryDAO_Impl$9.call(StreamHistoryDAO_Impl.java:665)
at org.schabi.newpipe.database.history.dao.StreamHistoryDAO_Impl$9.call(StreamHistoryDAO_Impl.java:639)
at io.reactivex.rxjava3.internal.operators.maybe.MaybeFromCallable.subscribeActual(MaybeFromCallable.java:47)
at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5330)
at io.reactivex.rxjava3.internal.operators.flowable.FlowableFlatMapMaybe$FlatMapMaybeSubscriber.onNext(FlowableFlatMapMaybe.java:131)
at io.reactivex.rxjava3.internal.operators.flowable.FlowableObserveOn$ObserveOnSubscriber.runAsync(FlowableObserveOn.java:402)
at io.reactivex.rxjava3.internal.operators.flowable.FlowableObserveOn$BaseObserveOnSubscriber.run(FlowableObserveOn.java:176)
at io.reactivex.rxjava3.internal.schedulers.ExecutorScheduler$ExecutorWorker$BooleanRunnable.run(ExecutorScheduler.java:322)
at io.reactivex.rxjava3.internal.schedulers.ExecutorScheduler$ExecutorWorker.runEager(ExecutorScheduler.java:287)
at io.reactivex.rxjava3.internal.schedulers.ExecutorScheduler$ExecutorWorker.run(ExecutorScheduler.java:248)
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)
Affected Android/Custom ROM version
PixelExperience 12L
Affected device model
Xiaomi Poco X3 Pro
Additional information
I have no idea what causes this issue and it's hard to reliably reproduce. However it seems to have no effect. I did merge two NewPipe database from a very old version because the two database is disjointed (i.e. used NewPipe installation 1 from January to March, then NewPipe installation 2 from September to December, which meant I need to merge two databases by hand using a SQL editor.)
Still present in version 4.7.5 and the stack trace is approximately the same.
It's actually very easy to reproduce. Simply close the app from the recent app screen, then open NewPipe again, and the first history entry that you delete will show an error. Subsequent deletions will not show an error until the app is restarted.