PhilippC / PhilippC/keepass2android

[BUG] French accents and WebDAV not working

Open
#3,182 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.