Checklist
Affected version
0.28.0
Steps to reproduce the bug
- Upload backup to a WebDAV mount via DAVx5.
- On another device mounted to the same WebDAV mount location, restore backup within NewPipe
- NewPipe should crash or raise exception.
Expected behavior
Can upload backups to WebDAV mount via DAVx5 and restore on another device that's mounted to the same WebDAV mount.
Actual behavior
Uploading to a WebDAV mount via DAVx5. Even if I save the backup to my local device and upload it manually works, but when importing backup from another device connected to the same WebDAV mount, it crashes NewPipe
Screenshots/Screen recordings
No response
Logs
Exception
- User Action: database import or export
- Request: Exporting database and settings
- Content Country: GB
- Content Language: en-GB
- App Language: en_GB
- Service: none
- Timestamp: 2025-09-01T22:49:18.146+01:00
- Package: org.schabi.newpipe
- Service: none
- Version: 0.28.0
- OS: Linux Android 16 - 36
Crash log
java.lang.UnsupportedOperationException: Mode rw not supported by WebDAV
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:185)
at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:164)
at android.content.ContentProviderProxy.openAssetFile(ContentProviderNative.java:737)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1903)
at android.content.ContentResolver.openFileDescriptor(ContentResolver.java:1716)
at android.content.ContentResolver.openFileDescriptor(ContentResolver.java:1662)
at us.shandian.giga.io.FileStreamSAF.<init>(FileStreamSAF.java:32)
at org.schabi.newpipe.streams.io.StoredFileHelper.getStream(StoredFileHelper.java:188)
at org.schabi.newpipe.streams.io.StoredFileHelper.openAndTruncateStream(StoredFileHelper.java:193)
at org.schabi.newpipe.settings.export.ImportExportManager.exportDatabase(ImportExportManager.kt:29)
at org.schabi.newpipe.settings.BackupRestoreSettingsFragment.exportDatabase(BackupRestoreSettingsFragment.java:164)
at org.schabi.newpipe.settings.BackupRestoreSettingsFragment.requestExportPathResult(BackupRestoreSettingsFragment.java:135)
at org.schabi.newpipe.settings.BackupRestoreSettingsFragment.$r8$lambda$fGteoRaC9h1Pn2xEuX2RRkPtyno(BackupRestoreSettingsFragment.java:0)
at org.schabi.newpipe.settings.BackupRestoreSettingsFragment$$ExternalSyntheticLambda1.onActivityResult(R8$$SyntheticClass:0)
at androidx.activity.result.ActivityResultRegistry.doDispatch(ActivityResultRegistry.java:414)
at androidx.activity.result.ActivityResultRegistry.dispatchResult(ActivityResultRegistry.java:371)
at androidx.activity.ComponentActivity.onActivityResult(ComponentActivity.java:845)
at androidx.fragment.app.FragmentActivity.onActivityResult(FragmentActivity.java:151)
at android.app.Activity.onActivityResult(Activity.java:7679)
at android.app.Activity.internalDispatchActivityResult(Activity.java:9599)
at android.app.Activity.dispatchActivityResult(Activity.java:9576)
at android.app.ActivityThread.deliverResults(ActivityThread.java:6207)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:6257)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:78)
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:63)
at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:133)
at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:103)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:80)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2832)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loopOnce(Looper.java:248)
at android.os.Looper.loop(Looper.java:338)
at android.app.ActivityThread.main(ActivityThread.java:9106)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593)
at com.android.internal.os.ExecInit.main(ExecInit.java:50)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:371)
Affected Android/Custom ROM version
GrapheneOS Build 2025081400
Affected device model
Pixel 6a & Pixel 8 Pro
Additional information
No response
Checklist
Affected version
0.28.0
Steps to reproduce the bug
Expected behavior
Can upload backups to WebDAV mount via DAVx5 and restore on another device that's mounted to the same WebDAV mount.
Actual behavior
Uploading to a WebDAV mount via DAVx5. Even if I save the backup to my local device and upload it manually works, but when importing backup from another device connected to the same WebDAV mount, it crashes NewPipe
Screenshots/Screen recordings
No response
Logs
Exception
Crash log
Affected Android/Custom ROM version
GrapheneOS Build 2025081400
Affected device model
Pixel 6a & Pixel 8 Pro
Additional information
No response