Overview
When trying to access a KeePass database file on a WebDAV server, KeePassVault crashes with the following error:
java.lang.NullPointerException: getEtag(...) must not be null
at com.ivanovsky.passnotes.data.repository.file.webdav.WebDavClientV2.toRemoteFileMetadata(WebDavClientV2.kt:333)
at com.ivanovsky.passnotes.data.repository.file.webdav.WebDavClientV2.toRemoteFileMetadata$default(WebDavClientV2.kt:319)
at com.ivanovsky.passnotes.data.repository.file.webdav.WebDavClientV2.getFileMetadata(WebDavClientV2.kt:158)
at com.ivanovsky.passnotes.data.repository.file.webdav.WebDavClientV2.getFileMetadata(WebDavClientV2.kt:138)
at com.ivanovsky.passnotes.data.repository.file.remote.RemoteApiClientAdapter.getFileMetadataOrThrow(RemoteApiClientAdapter.kt:44)
at com.ivanovsky.passnotes.data.repository.file.remote.RemoteFileSystemProvider.openFileForRead(RemoteFileSystemProvider.java:295)
at com.ivanovsky.passnotes.data.repository.keepass.KeepassDatabaseRepository.open(KeepassDatabaseRepository.kt:53)
at com.ivanovsky.passnotes.domain.interactor.unlock.UnlockInteractor$openDatabase$2.invokeSuspend(UnlockInteractor.kt:113)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@8b5a6ee, Dispatchers.Main.immediate]
How to reproduce
- Set up a WebDAV server. I've tried copyparty and dufs, the issue occurs with both.
- Upload a KeePass database to the server.
- Open KeePassVault and add the database to the list.
- Enter the database password. When tapping the unlock button, the app crashes with the above message.
Version
1.9.0 (via F-Droid)
Android Version
Android 15 (GrapheneOS)
Device Model
Pixel 8 Pro
Overview
When trying to access a KeePass database file on a WebDAV server, KeePassVault crashes with the following error:
How to reproduce
Version
1.9.0 (via F-Droid)
Android Version
Android 15 (GrapheneOS)
Device Model
Pixel 8 Pro