PhilippC / PhilippC/keepass2android
[BUG] French accents and WebDAV not working
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 6.2k
- Forks
- 478
- Avg merge
- 1h 4m
- Merged PRs (30d)
- 2
Description
Checks
- I have read the FAQ section, searched the open issues, and still think this is a new bug.
Describe the bug you encountered:
I'm using a database located on my Synology using WebDAV. The path contains /Sécurité/ in it. The app won't save it properly when synchronized.
Workaround: use Securite instead.
Here is the traceback
15/02/2026 10:45:00:39 -- System.Exception: Unexpected char 0xe9 at 45 in Destination value: https:///Sécurité/Mots2Passe.kdbx
---> Java.Lang.IllegalArgumentException: Unexpected char 0xe9 at 45 in Destination value: https:///Sécurité/Mots2Passe.kdbx
at Java.Interop.JniEnvironment.InstanceMethods.CallVoidMethod(JniObjectReference , JniMethodInfo , JniArgumentValue* )
at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualVoidMethod(String , IJavaPeerable , JniArgumentValue* )
at Keepass2android.Javafilestorage.WebDavStorage.UploadFile(String path, Byte[] data, Boolean writeTransactional)
at keepass2android.Io.JavaFileStorage.JavaFileStorageWriteTransaction.CommitWrite()
--- End of managed Java.Lang.IllegalArgumentException stack trace ---
java.lang.IllegalArgumentException: Unexpected char 0xe9 at 45 in Destination value: https:///Sécurité/Mots2Passe.kdbx
at okhttp3.Headers$Companion.checkValue(Headers.kt:450)
at okhttp3.Headers$Companion.access$checkValue(Headers.kt:362)
at okhttp3.Headers$Builder.set(Headers.kt:344)
at okhttp3.Request$Builder.header(Request.kt:199)
at keepass2android.javafilestorage.WebDavStorage.renameOrMoveWebDavResource(WebDavStorage.java:214)
at keepass2android.javafilestorage.WebDavStorage.uploadFile(WebDavStorage.java:268)
at mono.java.lang.RunnableImplementor.n_run(Native Method)
at mono.java.lang.RunnableImplementor.run(RunnableImplementor.java:29)
at java.lang.Thread.run(Thread.java:1119)
Describe what you expected to happen:
No response
What version of Keepass2Android are you using?
1.14-r4
Which version of Android are you on?
16
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in JavaFileStorage.WebDavStorage, especially renameOrMoveWebDavResource at WebDavStorage.java:214 and uploadFile at line 268, using the supplied traceback and a WebDAV path containing Sécurité. Reproduce the synchronization failure and trace how the destination path is passed into the request; done means the database saves and synchronizes successfully with the accented path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, csharp, java
- Domain
- mobile, networking
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100