Skip to content
This repository was archived by the owner on Jul 7, 2026. It is now read-only.
This repository was archived by the owner on Jul 7, 2026. It is now read-only.

App crashes when importing backup #194

Description

@VitoItalianGamer

Checklist

  • I am able to reproduce the bug with the latest version.
  • I am not able to reproduce the bug with the latest version of vanilla NewPipe.
  • 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 vanilla NewPipe contribution guidelines.

Affected version

0.27.5

Steps to reproduce the bug

  1. Import a backup
  2. App crashes

Expected behavior

App starts normally

Actual behavior

App crashes

Screenshots/Recordings

screen-20250126-102334.mp4

Logs

Exception

  • User Action: ui error
  • Request: ACRA report
  • Content Country: US
  • Content Language: en-US
  • App Language: en_US
  • Service: none
  • Timestamp: 2025-01-26T10:30:59.894-05:00
  • Package: org.polymorphicshade.tubular
  • Service: none
  • Version: 0.27.5
  • OS: Linux motorola/tonga_g/tonga:12/S3RQ32.20-42-10-3/aab62:user/release-keys 12 - 31
Crash log

io.reactivex.rxjava3.exceptions.OnErrorNotImplementedException: The exception was not handled due to missing onError handler in the subscribe() method call. Further reading: https://github.com/ReactiveX/RxJava/wiki/Error-Handling | android.database.sqlite.SQLiteException: no such column: is_thumbnail_permanent (code 1 SQLITE_ERROR): , while compiling: INSERT INTO playlists_new SELECT uid, name, is_thumbnail_permanent, thumbnail_stream_id  FROM playlists
	at io.reactivex.rxjava3.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:718)
	at io.reactivex.rxjava3.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:715)
	at io.reactivex.rxjava3.internal.subscribers.LambdaSubscriber.onError(LambdaSubscriber.java:79)
	at io.reactivex.rxjava3.internal.operators.flowable.FlowableObserveOn$BaseObserveOnSubscriber.checkTerminated(FlowableObserveOn.java:211)
	at io.reactivex.rxjava3.internal.operators.flowable.FlowableObserveOn$ObserveOnSubscriber.runAsync(FlowableObserveOn.java:395)
	at io.reactivex.rxjava3.internal.operators.flowable.FlowableObserveOn$BaseObserveOnSubscriber.run(FlowableObserveOn.java:178)
	at io.reactivex.rxjava3.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:123)
	at android.os.Handler.handleCallback(Handler.java:978)
	at android.os.Handler.dispatchMessage(Handler.java:104)
	at android.os.Looper.loopOnce(Looper.java:238)
	at android.os.Looper.loop(Looper.java:357)
	at android.app.ActivityThread.main(ActivityThread.java:8103)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1026)
Caused by: android.database.sqlite.SQLiteException: no such column: is_thumbnail_permanent (code 1 SQLITE_ERROR): , while compiling: INSERT INTO playlists_new SELECT uid, name, is_thumbnail_permanent, thumbnail_stream_id  FROM playlists
	at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
	at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1047)
	at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:654)
	at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:590)
	at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:62)
	at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:34)
	at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1920)
	at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1842)
	at androidx.sqlite.db.framework.FrameworkSQLiteDatabase.execSQL(FrameworkSQLiteDatabase.kt:246)
	at org.schabi.newpipe.database.Migrations$6.migrate(Migrations.java:229)
	at androidx.room.RoomOpenHelper.onUpgrade(RoomOpenHelper.kt:90)
	at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.onUpgrade(FrameworkSQLiteOpenHelper.kt:253)
	at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:416)
	at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:316)
	at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableOrReadableDatabase(FrameworkSQLiteOpenHelper.kt:232)
	at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.innerGetDatabase(FrameworkSQLiteOpenHelper.kt:190)
	at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getSupportDatabase(FrameworkSQLiteOpenHelper.kt:151)
	at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.kt:104)
	at androidx.room.RoomDatabase.inTransaction(RoomDatabase.kt:632)
	at androidx.room.RoomDatabase.assertNotSuspendingTransaction(RoomDatabase.kt:451)
	at androidx.room.RoomDatabase.query(RoomDatabase.kt:480)
	at androidx.room.util.DBUtil.query(DBUtil.kt:75)
	at org.schabi.newpipe.database.feed.dao.FeedDAO_Impl$10.call(FeedDAO_Impl.java:574)
	at org.schabi.newpipe.database.feed.dao.FeedDAO_Impl$10.call(FeedDAO_Impl.java:570)
	at io.reactivex.rxjava3.internal.operators.maybe.MaybeFromCallable.subscribeActual(MaybeFromCallable.java:47)
	at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5377)
	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:403)
	at io.reactivex.rxjava3.internal.operators.flowable.FlowableObserveOn$BaseObserveOnSubscriber.run(FlowableObserveOn.java:178)
	at io.reactivex.rxjava3.internal.schedulers.ExecutorScheduler$ExecutorWorker$BooleanRunnable.run(ExecutorScheduler.java:324)
	at io.reactivex.rxjava3.internal.schedulers.ExecutorScheduler$ExecutorWorker.runEager(ExecutorScheduler.java:289)
	at io.reactivex.rxjava3.internal.schedulers.ExecutorScheduler$ExecutorWorker.run(ExecutorScheduler.java:250)
	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)


Affected Android/Custom ROM version

Android 12

Affected device model

Moto G Power 2022

Additional information

I imported the backup from PipePipe

Activity

  1. asandikci commented on Jan 26, 2025

    @asandikci
    Collaborator

    Importing from PipePipe is not supported by Newpipe or Tubular

    Related Issue: TeamNewPipe/NewPipe#11960

    Related Project: https://github.com/shreyas-a-s/pipepipe-to-newpipe
    You can convert PipePipe database to NewPipe/Tubular compatible database with this project

  2. VitoItalianGamer commented on Jan 26, 2025

    @VitoItalianGamer
    Author

    Please change from not planned to completed I am going to do the method.

  3. VitoItalianGamer commented on Jan 29, 2025

    @VitoItalianGamer
    Author

    Do I have to use sh or py? I'm on windows.

  4. asandikci commented on Jan 29, 2025

    @asandikci
    Collaborator

    Do I have to use sh or py? I'm on windows.

    You can't use sh on windows. So py

  5. VitoItalianGamer commented on May 16, 2025

    @VitoItalianGamer
    Author

    Exception

    • User Action: ui error
    • Request: ACRA report
    • Content Country: US
    • Content Language: en-US
    • App Language: en_US
    • Service: none
    • Timestamp: 2025-05-16T19:09:00.319-04:00
    • Package: org.polymorphicshade.tubular
    • Service: none
    • Version: 0.27.7
    • OS: Linux motorola/tonga_g/tonga:12/S3RQ32.20-42-10-3/aab62:user/release-keys 12 - 31
    Crash log

    io.reactivex.rxjava3.exceptions.OnErrorNotImplementedException: The exception was not handled due to missing onError handler in the subscribe() method call. Further reading: https://github.com/ReactiveX/RxJava/wiki/Error-Handling | java.lang.IllegalStateException: A migration from 900 to 9 was required but not found. Please provide the necessary Migration path via RoomDatabase.Builder.addMigration(Migration ...) or allow for destructive migrations via one of the RoomDatabase.Builder.fallbackToDestructiveMigration* methods.
    	at io.reactivex.rxjava3.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:718)
    	at io.reactivex.rxjava3.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:715)
    	at io.reactivex.rxjava3.internal.subscribers.LambdaSubscriber.onError(LambdaSubscriber.java:79)
    	at io.reactivex.rxjava3.internal.operators.flowable.FlowableObserveOn$BaseObserveOnSubscriber.checkTerminated(FlowableObserveOn.java:211)
    	at io.reactivex.rxjava3.internal.operators.flowable.FlowableObserveOn$ObserveOnSubscriber.runAsync(FlowableObserveOn.java:395)
    	at io.reactivex.rxjava3.internal.operators.flowable.FlowableObserveOn$BaseObserveOnSubscriber.run(FlowableObserveOn.java:178)
    	at io.reactivex.rxjava3.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:123)
    	at android.os.Handler.handleCallback(Handler.java:978)
    	at android.os.Handler.dispatchMessage(Handler.java:104)
    	at android.os.Looper.loopOnce(Looper.java:238)
    	at android.os.Looper.loop(Looper.java:357)
    	at android.app.ActivityThread.main(ActivityThread.java:8103)
    	at java.lang.reflect.Method.invoke(Native Method)
    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1026)
    Caused by: java.lang.IllegalStateException: A migration from 900 to 9 was required but not found. Please provide the necessary Migration path via RoomDatabase.Builder.addMigration(Migration ...) or allow for destructive migrations via one of the RoomDatabase.Builder.fallbackToDestructiveMigration* methods.
    	at androidx.room.RoomOpenHelper.onUpgrade(RoomOpenHelper.kt:109)
    	at androidx.room.RoomOpenHelper.onDowngrade(RoomOpenHelper.kt:122)
    	at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.onDowngrade(FrameworkSQLiteOpenHelper.kt:277)
    	at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:414)
    	at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:316)
    	at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableOrReadableDatabase(FrameworkSQLiteOpenHelper.kt:232)
    	at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.innerGetDatabase(FrameworkSQLiteOpenHelper.kt:190)
    	at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getSupportDatabase(FrameworkSQLiteOpenHelper.kt:151)
    	at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.kt:104)
    	at androidx.room.RoomDatabase.inTransaction(RoomDatabase.kt:632)
    	at androidx.room.RoomDatabase.assertNotSuspendingTransaction(RoomDatabase.kt:451)
    	at androidx.room.RoomDatabase.query(RoomDatabase.kt:480)
    	at androidx.room.util.DBUtil.query(DBUtil.kt:75)
    	at org.schabi.newpipe.database.feed.dao.FeedDAO_Impl$10.call(FeedDAO_Impl.java:574)
    	at org.schabi.newpipe.database.feed.dao.FeedDAO_Impl$10.call(FeedDAO_Impl.java:570)
    	at io.reactivex.rxjava3.internal.operators.maybe.MaybeFromCallable.subscribeActual(MaybeFromCallable.java:47)
    	at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5377)
    	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:403)
    	at io.reactivex.rxjava3.internal.operators.flowable.FlowableObserveOn$BaseObserveOnSubscriber.run(FlowableObserveOn.java:178)
    	at io.reactivex.rxjava3.internal.schedulers.ExecutorScheduler$ExecutorWorker$BooleanRunnable.run(ExecutorScheduler.java:324)
    	at io.reactivex.rxjava3.internal.schedulers.ExecutorScheduler$ExecutorWorker.runEager(ExecutorScheduler.java:289)
    	at io.reactivex.rxjava3.internal.schedulers.ExecutorScheduler$ExecutorWorker.run(ExecutorScheduler.java:250)
    	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)
    
    

    Here is another error
  6. VitoItalianGamer commented on May 16, 2025

    @VitoItalianGamer
    Author

    Please reopen this issue.

  7. asandikci commented on May 19, 2025

    @asandikci
    Collaborator

    I'll reopen this issue if the backup file that you're trying to import is Tubular/NewPipe one. But PipePipe backups couldn't be imported (as I said before). So It's not a problem from our side.

    You can use some converter projects as mentioned before

  8. VitoItalianGamer commented on May 29, 2025

    @VitoItalianGamer
    Author

    I used a converter like pipe pipe to newpipe and used to work before, Used that nepipe file but now it doesn't anymore.

  9. VitoItalianGamer commented on Jun 2, 2025

    @VitoItalianGamer
    Author

    I mean it please reopen!

  10. asandikci commented on Jun 6, 2025

    @asandikci
    Collaborator

    I'll keep this issue closed since we could not maintain such a functionality. This is not related with Tubular.

    Best thing that you can do is manually moving your subs/playlists or wait converter author to solve this problems:

  11. Kobaxidze256 commented on Jun 14, 2026

    @Kobaxidze256

    https://kraxen72.github.io/npconv/ Works for at least PipePipe -> NewPipe without internet. BendyStraw can be used to merge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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