Copying a file in a webdav server behind Caddy reverse proxy does not work

What is the problem you are having with rclone?

I'm trying to copy a file in a folder served via the rclone webdav server. When doing it by connecting directly to the rclone server everything goes well, but when trying to do that by connecting to the server using a webserver acting as reverse proxy the copy operation loops indefinitely. I'm using Caddy as reverse proxy.

Run the command 'rclone version' and share the full output of the command.

On server:

rclone v1.69.0
- os/version: debian 12.9
- os/kernel: 6.1.0-30-armmp (armv7l)
- os/type: linux
- os/arch: arm (ARMv7 compatible)
- go/version: go1.23.4
- go/linking: static
- go/tags: none

On client:

rclone 1.69.0
- os/version: fedora 41 (64 bit)
- os/kernel: 6.12.11-200.fc41.x86_64 (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.23.4
- go/linking: dynamic
- go/tags: none

Which cloud storage system are you using?

Webdav server created with the following command:

rclone serve webdav /mnt/datavault --addr :8100 --log-level DEBUG

The command you were trying to run

This is the command copying the file by connecting to the server without the reverse proxy:

rclone copyto bomber-localdav:/file bomber-localdav:/file-copy2

And this is the command copying the file by connecting to the server via the reverse proxy:

rclone copyto bomber-pubdav:/file bomber-pubdav:/file-copy2

Please run 'rclone config redacted' and share the full output. If you get command not found, please make sure to update rclone.

Server config file is empty.

This is the client config file

[Backblaze]
type = b2
account = XXX
key = XXX

[bomber-localdav]
type = webdav
url = http://192.168.1.10:8100
vendor = rclone

[bomber-pubdav]
type = webdav
url = https://dav.bomber.duckdns.org/
vendor = rclone
user = XXX
pass = XXX

A log from the command that you were trying to run with the -vv flag

This is the rclone server log when issuing the operation via the reverse proxy, hence using the bomber-pubdav remote (here you can find the relative Caddy log):

user@bomber:~$ rclone serve webdav /mnt/datavault --addr :8100 --log-level DEBUG
2025/02/07 15:50:37 DEBUG : rclone: Version "v1.69.0" starting with parameters ["rclone" "serve" "webdav" "/mnt/datavault" "--addr" ":8100" "--log-level" "DEBUG"]
2025/02/07 15:50:37 DEBUG : Creating backend with remote "/mnt/datavault"
2025/02/07 15:50:37 DEBUG : Using config file from "/home/user/.config/rclone/rclone.conf"
2025/02/07 15:50:37 INFO  : Local file system at /mnt/datavault: poll-interval is not supported by this remote
2025/02/07 15:50:37 NOTICE: Local file system at /mnt/datavault: WebDav Server started on [http://[::]:8100/]
2025/02/07 15:50:44 DEBUG : /file: OpenFile: flags=O_RDONLY, perm=----------
2025/02/07 15:50:44 DEBUG : file: Open: flags=O_RDONLY
2025/02/07 15:50:44 DEBUG : file: >Open: fd=file (r), err=<nil>
2025/02/07 15:50:44 DEBUG : /file: >OpenFile: fd=file (r), err=<nil>
2025/02/07 15:50:44 DEBUG : /file: OpenFile: flags=O_RDONLY, perm=----------
2025/02/07 15:50:44 DEBUG : file: Open: flags=O_RDONLY
2025/02/07 15:50:44 DEBUG : file: >Open: fd=file (r), err=<nil>
2025/02/07 15:50:44 DEBUG : /file: >OpenFile: fd=file (r), err=<nil>
2025/02/07 15:50:44 INFO  : //file: PROPFIND from [::1]:37440
2025/02/07 15:50:44 DEBUG : /file: OpenFile: flags=O_RDONLY, perm=----------
2025/02/07 15:50:44 DEBUG : file: Open: flags=O_RDONLY
2025/02/07 15:50:44 DEBUG : file: >Open: fd=file (r), err=<nil>
2025/02/07 15:50:44 DEBUG : /file: >OpenFile: fd=file (r), err=<nil>
2025/02/07 15:50:44 DEBUG : /file: OpenFile: flags=O_RDONLY, perm=----------
2025/02/07 15:50:44 DEBUG : file: Open: flags=O_RDONLY
2025/02/07 15:50:44 DEBUG : file: >Open: fd=file (r), err=<nil>
2025/02/07 15:50:44 DEBUG : /file: >OpenFile: fd=file (r), err=<nil>
2025/02/07 15:50:44 INFO  : //file: PROPFIND from [::1]:37440
2025/02/07 15:50:44 INFO  : //file-copy2: PROPFIND from [::1]:37440
2025/02/07 15:50:44 INFO  : //file: COPY from [::1]:37440
2025/02/07 15:50:44 INFO  : //file: COPY from [::1]:37440
2025/02/07 15:50:44 INFO  : //file: COPY from [::1]:37440
2025/02/07 15:50:44 INFO  : //file: COPY from [::1]:37440
2025/02/07 15:50:44 INFO  : //file: COPY from [::1]:37440
2025/02/07 15:50:44 INFO  : //file: COPY from [::1]:37440
2025/02/07 15:50:44 INFO  : //file: COPY from [::1]:37440
2025/02/07 15:50:45 INFO  : //file: COPY from [::1]:37440
2025/02/07 15:50:46 INFO  : //file: COPY from [::1]:37440
2025/02/07 15:50:48 INFO  : //file: COPY from [::1]:37440
...

This is the relative Caddy logfile:

And this is the log of rclone when using the bomber-localdev remote, that bypasses the reverse proxy:

2025/02/07 16:02:36 DEBUG : rclone: Version "v1.69.0" starting with parameters ["rclone" "serve" "webdav" "/mnt/datavault" "--addr" ":8100" "--log-level" "DEBUG"]
2025/02/07 16:02:36 DEBUG : Creating backend with remote "/mnt/datavault"
2025/02/07 16:02:36 DEBUG : Using config file from "/home/user/.config/rclone/rclone.conf"
2025/02/07 16:02:36 INFO  : Local file system at /mnt/datavault: poll-interval is not supported by this remote
2025/02/07 16:02:36 NOTICE: Local file system at /mnt/datavault: WebDav Server started on [http://[::]:8100/]
2025/02/07 16:02:41 DEBUG : /file: OpenFile: flags=O_RDONLY, perm=----------
2025/02/07 16:02:41 DEBUG : file: Open: flags=O_RDONLY
2025/02/07 16:02:41 DEBUG : file: >Open: fd=file (r), err=<nil>
2025/02/07 16:02:41 DEBUG : /file: >OpenFile: fd=file (r), err=<nil>
2025/02/07 16:02:41 DEBUG : /file: OpenFile: flags=O_RDONLY, perm=----------
2025/02/07 16:02:41 DEBUG : file: Open: flags=O_RDONLY
2025/02/07 16:02:41 DEBUG : file: >Open: fd=file (r), err=<nil>
2025/02/07 16:02:41 DEBUG : /file: >OpenFile: fd=file (r), err=<nil>
2025/02/07 16:02:41 INFO  : //file: PROPFIND from 192.168.1.109:58218
2025/02/07 16:02:41 DEBUG : /file: OpenFile: flags=O_RDONLY, perm=----------
2025/02/07 16:02:41 DEBUG : file: Open: flags=O_RDONLY
2025/02/07 16:02:41 DEBUG : file: >Open: fd=file (r), err=<nil>
2025/02/07 16:02:41 DEBUG : /file: >OpenFile: fd=file (r), err=<nil>
2025/02/07 16:02:41 DEBUG : /file: OpenFile: flags=O_RDONLY, perm=----------
2025/02/07 16:02:41 DEBUG : file: Open: flags=O_RDONLY
2025/02/07 16:02:41 DEBUG : file: >Open: fd=file (r), err=<nil>
2025/02/07 16:02:41 DEBUG : /file: >OpenFile: fd=file (r), err=<nil>
2025/02/07 16:02:41 INFO  : //file: PROPFIND from 192.168.1.109:58218
2025/02/07 16:02:41 INFO  : //file-copy2: PROPFIND from 192.168.1.109:58218
2025/02/07 16:02:41 DEBUG : /file: OpenFile: flags=O_RDONLY, perm=----------
2025/02/07 16:02:41 DEBUG : file: Open: flags=O_RDONLY
2025/02/07 16:02:41 DEBUG : file: >Open: fd=file (r), err=<nil>
2025/02/07 16:02:41 DEBUG : /file: >OpenFile: fd=file (r), err=<nil>
2025/02/07 16:02:41 DEBUG : file-copy2: OpenFile: flags=O_RDWR|O_CREATE|O_TRUNC, perm=-rw-r--r--
2025/02/07 16:02:41 DEBUG : file-copy2: Open: flags=O_RDWR|O_CREATE|O_TRUNC
2025/02/07 16:02:41 DEBUG : : Added virtual directory entry vAddFile: "file-copy2"
2025/02/07 16:02:41 DEBUG : file-copy2: >Open: fd=file-copy2 (w), err=<nil>
2025/02/07 16:02:41 DEBUG : file-copy2: >OpenFile: fd=file-copy2 (w), err=<nil>
2025/02/07 16:02:41 DEBUG : : Added virtual directory entry vAddFile: "file-copy2"
2025/02/07 16:02:41 DEBUG : Local file system at /mnt/datavault: File to upload is small (0 bytes), uploading instead of streaming
2025/02/07 16:02:41 DEBUG : file-copy2: md5 = d41d8cd98f00b204e9800998ecf8427e OK
2025/02/07 16:02:41 DEBUG : file-copy2: Size and md5 of src and dst objects identical
2025/02/07 16:02:41 DEBUG : file-copy2: Applied pending mod time 2025-02-07 15:28:05 +0100 CET OK
2025/02/07 16:02:41 DEBUG : : Added virtual directory entry vAddFile: "file-copy2"
2025/02/07 16:02:41 INFO  : //file: COPY from 192.168.1.109:58218
2025/02/07 16:02:41 DEBUG : file: Not setting pending mod time 2025-02-07 15:28:05 +0100 CET as it is already set
2025/02/07 16:02:41 DEBUG : /file-copy2: OpenFile: flags=O_RDONLY, perm=----------
2025/02/07 16:02:41 DEBUG : file-copy2: Open: flags=O_RDONLY
2025/02/07 16:02:41 DEBUG : file-copy2: >Open: fd=file-copy2 (r), err=<nil>
2025/02/07 16:02:41 DEBUG : /file-copy2: >OpenFile: fd=file-copy2 (r), err=<nil>
2025/02/07 16:02:41 DEBUG : /file-copy2: OpenFile: flags=O_RDONLY, perm=----------
2025/02/07 16:02:41 DEBUG : file-copy2: Open: flags=O_RDONLY
2025/02/07 16:02:41 DEBUG : file-copy2: >Open: fd=file-copy2 (r), err=<nil>
2025/02/07 16:02:41 DEBUG : /file-copy2: >OpenFile: fd=file-copy2 (r), err=<nil>
2025/02/07 16:02:41 INFO  : //file-copy2: PROPFIND from 192.168.1.109:58218

Thanks to all the folks that will try to help and ones helping to build this great software!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.