Kunzisoft / Kunzisoft/KeePassDX
Nextcoud file URI persistence handling inconsistency
- Dominant language
- Kotlin
- Stars
- 7.3k
- Forks
- 401
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 1
Description
### Checks
- [x] I have read the Wiki, searched the open issues, and still think this is a new bug.
### Explain the problem clearly and succinctly:
When I open the Database from the app (in the starting screen) and try to unlock with biometrics I get the following error:
`Permission Denial: opening provider com.android.providers.media.MediaDocumentsProvider from ProcessRecord{c8f48e1 8109:com.kunzisoft.libre/u_[ommited by issue commiter]_} {pid=8109, uid = _[ommited by issue commiter]_} requires that you obtain access using ACTION_OPEN_DOCUMENT or related APIs`.
I first opened the file yesterday, but have since updated the remote file in Nextcloud so I suspect the UID changed. However, when I open the file from the native file explorer it is recognized by KeePassDX again (unlock still gives the same error). When I open that same file from the Nexctloud App or from within KeePassDX using the Media picker it is not recognized as a known database .
### Describe what you expected to happen:
I expect to be able to open the Database with the stored credentials or not recognize the file when opened from the file picker.
### KeePassDX version:
4.3.2
### Build:
Libre
### Database version:
KDBX 4
### File provider (`content://` URI)
org.nextcloud.documents
### Android version:
16 - Graphene OS Build 2026011301
### Android device:
Pixel 10 Pro XL
### Additional context:
I opened the issue in part, because the [wiki](https://github.com/Kunzisoft/KeePassDX/wiki/File-Manager-and-Sync) states
> Yes if integrated with de default File app. Revokes the file while synchronized data is recovered. Pressing the back button and reselecting the database solves the issue.
when it comes to the state of using Nextcloud as a file source. Pressing the Back-button and re-selecting the database did not fix the issue in my case, however.
Contributor guide
Research direction
No source files, tests, or entry points are identified in the issue. Start by reproducing the flow with a Nextcloud content:// URI: reopen the database from the starting screen, try biometric unlock, and compare opening it through the native explorer, Nextcloud, and the Media picker. Done should mean the stored database is consistently recognized and can be opened, or is consistently rejected when appropriate.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100