-
| 
         I use DAVx5 v. 4.3.2-ose on the current GrapheneOS, with inter alia two WebDAV accounts. For one provider (NetCologne.de), this works perfectly, for both downloading and uploading files. The other account is a free one from Deutsche Telekom (magentacloud.de). Here, I can download files to the mobile phone without problems. However, all uploaded files end up with 0 bytes in the cloud folder. I am quite sure that data has actually been uploaded, as the operation took the “usual” time and the progress bar indicated activity. In principle, upload does work for this provider, e.g. from a Linux XFCE desktop using the standard Thunar file manager. I guess this is a bug in the Telekom cloud (it doesn't implement the RFC's properly for CardDAV and CalDAV either), but as Thunar is able to upload files properly, it seems that it is “somehow” possible to work around them. Any idea how this issue could be fixed? Any input I could provide for help? Thanks in advance, Albrecht.  | 
  
Beta Was this translation helpful? Give feedback.
Replies: 6 comments 13 replies
-
| 
         Hi, Can you maybe a test account (maybe app-password or set a password for us and then reset it)? So that we can have a look at it.  | 
  
Beta Was this translation helpful? Give feedback.
-
| 
         Good day Sir/Mesdames! My DavX5 stooped working. Im using it to sync contacts & calendar from my huawei nova 7 to google . I hope you could help me... i used the https://www.google.com/calendar/dav/my google account/events asmy Base URL  | 
  
Beta Was this translation helpful? Give feedback.
-
| 
         Unfortunately, the problem persists and it seems that it will take some time before Telekom may (is willing to) find a solution. Hence the following suggestion: 
 PS: I have had to accept a loss of data myself due to this error. See there: seedvault-app/seedvault#622  | 
  
Beta Was this translation helpful? Give feedback.
-
| 
         I think I just discovered this issue on my own personal, self-hosted NextCloud server (v27.1.17). Uploading large-ish (~200KiB) files via a davx5 WebDAV mount results in zero-length files on the server. No errors are reported on the client when this happens. Both SeedVault and the Android file manager can trigger this bug. This is pretty bad, my SeedVault backups were destroyed by this. I think we have to assume that we cannot safely write files via a davx5 WebDav mount to any NextCloud or NextCloud-based server.  | 
  
Beta Was this translation helpful? Give feedback.
-
| 
         Ah, I see this is indeed a longstanding NextCloud issue: nextcloud/server#7995 Some deployments have workarounds in place, but I'm using the Snap package which presumably does not: nextcloud-snap/nextcloud-snap#365  | 
  
Beta Was this translation helpful? Give feedback.
-
| 
         just a heads up: rclone wrappers like RoundSync and RSAF do the webdav-mount writes fully for Nextclouds in nginx-fastcgi-php setups (vs Apache, that can be made to handle the chunked transfers). RS will ask for full file access permissions, RSAF creates a vfs for rclone using a Go-written rcbridge, but also see its Limitations. Seedvault can now use RS as backend. By my laymans reading they work because they don't do streaming writes vs. Davx5 that does if a few conditions aren't met: as for new writes ETag/last-modified is unknown, they'll always fall into streamingFileDescriptorFactory instead of openProxyFileDescriptor. Not sure if there's room for flexibility or my take is misguided.  | 
  
Beta Was this translation helpful? Give feedback.
I had a look and could reproduce your problem.
Unfortunately, DAVx5 doesn't know the file size in prior of the upload. So okhttp (the HTTP library that DAVx5 uses) uploads the file without naming a file size and using chunked transfer encoding (or its HTTP/2 equivalent: data frames). This is correct and must be supported by servers.
The problem can be reproduced with curl:
(…