WebDAV PROPFIND returns 404 for displayname/resourcetype after successful PUT, causing rclone to fail
- Dominant language
- Java
- Stars
- 427
- Forks
- 52
- Avg merge
- 20h 37m
- Merged PRs (30d)
- 2
Description
### Please agree to the following
- [x] I have searched [existing issues](https://github.com/cryptomator/cli/issues?q=) for duplicates
- [x] I agree to follow this project's [Code of Conduct](https://github.com/cryptomator/cli/blob/develop/.github/CODE_OF_CONDUCT.md)
### Summary
When using Cryptomator CLI with the WebDAV mounter, uploading a file via WebDAV succeeds with `201 Created`, and the uploaded file can be read back with `curl`.
However, `rclone` fails immediately after the successful `PUT`, because its follow-up `PROPFIND` receives a `207 Multi-Status` response where some requested properties return `404 Not Found` while others return `200 OK`.
Specifically, for an uploaded file:
```text
displayname -> 404 Not Found
resourcetype -> 404 Not Found
getlastmodified -> 200 OK
getcontentlength -> 200 OK
```
This causes rclone to treat the object as missing and fail with:
```text
Failed to copy: object not found
```
### What software is involved?
- Operating System: Debian 13
- Cryptomator CLI: 0.6.2
- Rclone: 1.74.2
### Volume Type
WebDAV (HTTP Address)
### Steps to Reproduce
1. Start Cryptomator CLI with the WebDAV fallback mounter, for example:
```bash
cryptomator-cli unlock \
--mounter=org.cryptomator.frontend.webdav.mount.FallbackMounter \
--volumeId=vault \
--loopbackPort=59317 \
"/tmp/test-vault"
```
2. In another terminal, prepare a test file:
```bash
mkdir -p /tmp/rclone-webdav-src
printf 'hello from rclone webdav trace\n' > /tmp/rclone-webdav-src/test.txt
```
3. Run rclone against the Cryptomator WebDAV endpoint:
```bash
rclone copy /tmp/rclone-webdav-src :webdav:rclone-trace-test \
--config /dev/null \
--webdav-url "http://127.0.0.1:59317/vault/" \
--webdav-vendor other \
--webdav-user cryptomator \
--webdav-pass "$(rclone obscure cryptomator)" \
--transfers 1 \
--checkers 1 \
--retries 1 \
--low-level-retries 1 \
--dump headers,bodies \
-vv
```
4. As a control test, uploading and reading the same file with curl works:
```bash
curl -u cryptomator:cryptomator \
-X MKCOL \
"http://127.0.0.1:59317/vault/curl-control/"
curl -u cryptomator:cryptomator \
-T /tmp/rclone-webdav-src/test.txt \
"http://127.0.0.1:59317/vault/curl-control/test.txt"
curl -u cryptomator:cryptomator \
"http://127.0.0.1:59317/vault/curl-control/test.txt"
```
5. The final curl command returns:
```text
hello from rclone webdav trace
```
### Expected Behavior
After a successful `PUT`, the uploaded file should be discoverable through `PROPFIND` in a way that common WebDAV clients can recognize it as an existing regular file.
For the properties requested by rclone:
```xml
```
the response should allow the client to determine that:
- the resource exists
- it is a regular file, not a collection
- its content length is available
- its last modified timestamp is available
Ideally, `displayname`, `getlastmodified`, `getcontentlength`, and `resourcetype` should be returned in a successful `200 OK` propstat for an existing file. For a regular file, `resourcetype` can be returned as an empty property.
rclone should be able to complete the upload successfully instead of failing after the successful `PUT` with `object not found`.
### Actual Behavior
The `PUT` succeeds:
```text
PUT /vault/rclone-trace-test/test.txt HTTP/1.1
HTTP/1.1 201 Created
```
But the follow-up `PROPFIND` returns a mixed `207 Multi-Status` response:
```xml
http://127.0.0.1:59317/vault/rclone-trace-test/test.txt
HTTP/1.1 404 Not Found
Fri, 5 Jun 2026 21:18:54 GMT
31
HTTP/1.1 200 OK
```
rclone then fails with:
```text
Failed to copy: object not found
```
### Reproducibility
Always
### Relevant Log Output
rclone:
```shell
PROPFIND /vault/rclone-trace-test HTTP/1.1
HTTP/1.1 404 Not Found
PROPFIND /vault/rclone-trace-test/ HTTP/1.1
HTTP/1.1 404 Not Found
MKCOL /vault/rclone-trace-test/ HTTP/1.1
HTTP/1.1 201 Created
PUT /vault/rclone-trace-test/test.txt HTTP/1.1
Content-Length: 31
hello from rclone webdav trace
HTTP/1.1 201 Created
PROPFIND /vault/rclone-trace-test/test.txt HTTP/1.1
HTTP/1.1 207 Multi-Status
http://127.0.0.1:59317/vault/rclone-trace-test/test.txtHTTP/1.1 404 Not FoundFri, 5 Jun 2026 21:18:54 GMT31HTTP/1.1 200 OK
ERROR : test.txt: Failed to copy: object not found
NOTICE: Failed to copy: object not found
```
### Anything else?
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.