WEBDAV error on sync

Operating system

Linux

Joplin version

3.7.16

Desktop version info

Joplin 3.7.16 (prod, linux)

Device: linux, 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
Client ID: 39c498d89e3149e896ed8e5dd8d4a448
Sync Version: 3
Profile Version: 53
Keychain Supported: No
Alternative instance ID: -
Sync target: WebDAV
Editor: Markdown

Revision: e3f38c6

Backup: 1.5.1
Freehand Drawing: 4.3.0
Note Tabs: 1.4.0
Orphaned note repair tool: 1.0.0

Sync target

WebDAV

What issue do you have?

I'm syncing Joplin (mobile and desktop) via rclone serve webdav fronting Proton Drive.
I'm seeing the following message in the sync status

Updated remote items: 1.
Completed: 27/09/2026 10:28 (51s)
Last error: Error: PUT 193448bddb3c47718803aa31da07bcdf.md: Unknown error 2 (405): Method Not Allowed

Any ideas why?

Is that a new sync setup, or you had it running for a while? Try upgrading Joplin to the latest version

I've been running it for a couple of weeks.

On your advice I installed 3.7.21 using the .deb from github. However, I found there were old versions installed on my m/c. I uninstalled 3.7.21. then uninstalled the Flatpack. I re-installed 3..7.21.

If I run joplin from the command line it load 3.7.21. If I run it from the desktop UI, it loads 3.7.16. I can't find 3.7.16. If I run pgrep, I get the following. No idea what it means.

*brian@megadodo:~$* pgrep -a joplin
7299 /tmp/.mount_JoplinamKooi/joplin
7310 /tmp/.mount_JoplinamKooi/joplin --type=zygote --no-zygote-sandbox
7311 /tmp/.mount_JoplinamKooi/joplin --type=zygote
7313 /tmp/.mount_JoplinamKooi/joplin --type=zygote
7362 /tmp/.mount_JoplinamKooi/joplin --type=gpu-process --ozone-platform=wayland --render-node-override=/dev/dri/renderD128 --crashpad-handler-pid=7338 --enable-crash-reporter=52fa5733-f96d-4474-9a75-815d7fa190e4,no_channel --user-data-dir=/home/brian/.config/Joplin --gpu-preferences=UAAAAAAAAAAgAQAEAAAAAAAAAAAAAGAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA --shared-files --field-trial-handle=3,i,15617013032223990049,4520163608603512708,262144 --enable-features=PdfUseShowSaveFilePicker --disable-features=DropInputEventsWhilePaintHolding,LocalNetworkAccessChecks,ScreenAIOCREnabled,SpareRendererForSitePerProcess,TraceSiteInstanceGetProcessCreation --variations-seed-version --pseudonymization-salt-handle=7,i,16774174424820693689,6928371450025216857,4 --trace-process-track-uuid=3190708988185955192
7369 /tmp/.mount_JoplinamKooi/joplin --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-GB --service-sandbox-type=none --render-node-override=/dev/dri/renderD128 --crashpad-handler-pid=7338 --enable-crash-reporter=52fa5733-f96d-4474-9a75-815d7fa190e4,no_channel --user-data-dir=/home/brian/.config/Joplin --standard-schemes=joplin-content,joplin-plugin --secure-schemes=joplin-content,joplin-plugin --cors-schemes=joplin-content --fetch-schemes=joplin-content --streaming-schemes=joplin-content --code-cache-schemes=joplin-content --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,15617013032223990049,4520163608603512708,262144 --enable-features=PdfUseShowSaveFilePicker --disable-features=DropInputEventsWhilePaintHolding,LocalNetworkAccessChecks,ScreenAIOCREnabled,SpareRendererForSitePerProcess,TraceSiteInstanceGetProcessCreation --variations-seed-version --pseudonymization-salt-handle=7,i,16774174424820693689,6928371450025216857,4 --trace-process-track-uuid=3190708989122997041
7401 /tmp/.mount_JoplinamKooi/joplin --type=renderer --crashpad-handler-pid=7338 --enable-crash-reporter=52fa5733-f96d-4474-9a75-815d7fa190e4,no_channel --user-data-dir=/home/brian/.config/Joplin --standard-schemes=joplin-content,joplin-plugin --secure-schemes=joplin-content,joplin-plugin --cors-schemes=joplin-content --fetch-schemes=joplin-content --streaming-schemes=joplin-content --code-cache-schemes=joplin-content --app-path=/tmp/.mount_JoplinamKooi/resources/app.asar --no-sandbox --no-zygote --ozone-platform=wayland --lang=en-GB --num-raster-threads=4 --enable-main-frame-before-activation --renderer-client-id=4 --time-ticks-at-unix-epoch=-1790512455087041 --launch-time-ticks=22563175541 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,15617013032223990049,4520163608603512708,262144 --enable-features=PdfUseShowSaveFilePicker --disable-features=DropInputEventsWhilePaintHolding,LocalNetworkAccessChecks,ScreenAIOCREnabled,SpareRendererForSitePerProcess,TraceSiteInstanceGetProcessCreation --variations-seed-version --pseudonymization-salt-handle=7,i,16774174424820693689,6928371450025216857,4 --trace-process-track-uuid=3190708990060038890
```

Ok. I'm now running 3.7.21. I'm still seeing the error `Last error: Error: PUT 193448bddb3c47718803aa31da07bcdf.md: Unknown error 2 (405): Method Not Allowed`.

I presume the 405 is being returned by my server, rclone serve webdav. I note that the configuration of joplin's webdav sync method allows only the http and https protocols, not dav. I don't know whether this is the cause of the error. PUT is a valid http method, and I thought webdav extended, rather than modified, http.

Does anyone know why dav is not allowed in the joplin config?

Here is a link to the issue I raised at rclone

https://forum.rclone.org/t/405-response-to-joplin-sync/54288

Hi,

In addition to Joplin I also provide support in the rclone forum .

As you may know or may not know, the Proton client for rclone was deprecated to level 5, meaning that they don't have developer support for it. It has now been upgraded to level 4, which means that it is experimental ?

This means that your WebDAV connection that you're using may not work properly because serving Proton Drive over rclone is not considered to work properly because it's outdated configuration. They need to have a developer wait for the Proton developer kit to come out and create an updated interface for Proton Drive for Rclone. The current support for Proton in Rclone has been waiting for the release of a new API kit from Proton that will allow the Rclone people to build the proper client for it.

There is another connector that will go with WebDAV that might give you better success with Proton Drive and WebDAV.

Alist -

let me know if you need any assistance configuring it. I made it work.

I was able to successfully mount my Proton Drive using the software and it gave me a webdav address.

Assuming you downloaded the Windows version, you’ll first add Proton Drive as storage in AList, then access it through AList’s WebDAV address.

1. Start AList

Extract the download into a permanent folder, such as C:\AList. Open PowerShell in that folder and run:

.\alist.exe server

Leave that window open. In your browser, open:

http://localhost:5244

Log in using the administrator credentials printed during the first startup.

2. Add Proton Drive

Open Manage → Storages → Add, select ProtonDrive, and enter these settings:

SettingValueMount Path/ProtonUsernameYour Proton account email/usernamePasswordYour Proton account passwordTwoFA CodeCurrent authenticator code, if you use 2FARoot Folder Path/WebDAV PolicyNative proxy, if the option appears

The mount path is the folder name AList displays; the root folder path identifies the folder inside Proton Drive. Native proxy sends file contents through AList and offers the best WebDAV compatibility. Save the storage, then return to the file browser and confirm that /Proton shows your files. ProtonDrive requires AList v3.54.0 or newer. AList Docs

3. Enable WebDAV permissions

Go to Manage → Users, edit the account you’ll use for WebDAV, and enable:

Webdav Read

Webdav Manage for write access

Make dir or upload, Delete, Rename, Move, and Copy as needed

Save the account. Read-only access requires only Webdav Read. AList Docs

4. Connect your WebDAV application

With the mount path above and an account whose base path is /, use:

http://localhost:5244/dav/Proton/

Enter your AList username and password in the WebDAV application. AList uses its web port and /dav/ path for WebDAV. AList Docs

localhost works from the computer running AList. For another device, replace it with that computer’s LAN or Tailscale IP address. Keep AList running while accessing the files.

Hi, LeoW
I think I may have a solution to my problem. If it works, I'll post it here and on rclone. If it doesn't work, I'll pick up your suggestion.

Thanks for your interest.

Peace & Love
Brian

Brian Dobby

My mailbox is protected and cleaned by cleanfox.io

Solved
My problem is solved and my system simplified. I set up rclone webdav pointed at a folder on my server. My 3 Joplin instances all sync through that folder. I realised that I didn't need to involve Proton at all.

That's great that you got it working. Congratulations!

I was operating under the presumption that you were trying to use Proton Drive as your sync target.

If everything is syncing through your own NAS server, then you're all set. Yes.

I was. But that was mainly because I'd used it for other apps. With rclone sync, I didn't need that. The synced cache will get picked up by my daily backup.

By default Rclone uses HTTP not HTTPS. There is a software program (I think the name is Caddy) and I don't know if it works on Linux or just Windows but it gives you an HTTPS connection with a valid certificate that it gets for you, presuming you have a valid domain name. My router has dynamic DNS through Asus and so I have a valid domain name that points to my router.

Presuming that your server is at home or in an office, HTTPS is not much of a concern.

I just checked and Caddy is supported on Windows, Linux, and Mac, and supposedly Android.

I expose my HTTPS connection with a user ID and password. I also remote in with a VPN so it's not available for anybody to hit.