WebDAV folder will not mount in Nautilus

Hello there,
since the last update it is not possible anymore to mount some WebDAV folders in Nautilus.
Especially our School Server (IServ) is affected.
I get a sign in dialogue but nothing happens, when I type in my user name and password.
This used to work flawlessly. It is very annoying, that such a useful feature suddenly broke down.
The only way to mount my online WebDav-folders was with this command:
sudo mount.davfs https://webdav.server.de/ /home/username/mountfolder -o rw,uid=username

While this seemed to work at the beginning, it led to the problem, that online documents, that I opened via nautilus in LIbreOffice and that I tried to save with the edited changes, suddenly were saved as 0 KB files and their whole content was lost. This is terrible!!!

Please, can somebody fix this WebDav issue? The same issue ocures on two different Versions of Manjaro (Gnome and XFCE) just after installing all updates. By the way: in Windows and Ubuntu there are no issues to connect to WebDav-Servers in the local file manager.

Thanks in advance

Salih

Hello @Salih114 :wink:

I have no issue using my nextcloud webdav space. Maybe try this to debug it:

pkill gvfs
pkill nautilus
export GVFS_DEBUG=1 
cd /usr/lib
./gvfsd-dav ssl=true user=username host=dav.example.org prefix=/remote.php/webdav/

Projects/gvfs/debugging - GNOME Wiki!
Projects/gvfs/doc - GNOME Wiki!

Thanks for your reply,
yes, like I wrote, only some Web-Dav services are affected. Unfortunately the WebDav-access to my school-server is very important for my daily work.

With your debugging commands I am getting:

  • (process:64530): libsoup-http2-WARNING **: 08:58:18.991: (…/libsoup/libsoup/http2/soup-client-message-io-http2.c:458):io_read: runtime check failed: (io->in_callback == 0)
  • libsoup-http2:ERROR:…/libsoup/libsoup/http2/soup-client-message-io-http2.c:632:on_begin_frame_callback: assertion failed: (!data->decoded_data_istream)
  • Bail out! libsoup-http2:ERROR:…/libsoup/libsoup/http2/soup-client-message-io-http2.c:632:on_begin_frame_callback: assertion failed: (!data->decoded_data_istream)
  • zsh: IOT instruction (core dumped) ./gvfsd-dav ssl=true user=[hidden user name] host=[url: [webdav.myserver.de](http://webdav.myserver.de)]

Ok starting with this message:

libsoup/http2/soup-client-message-io-http2.c · master · GNOME / libsoup · GitLab

libsoup/http2/soup-client-message-io-http2.c · master · GNOME / libsoup · GitLab

This error means, that the soup client cannot read the data from the server. Especially the body part…

It would useful to add debugging of http aswell.

pkill gvfs
pkill nautilus
export GVFS_DEBUG=1
export GVFS_HTTP_DEBUG=all # all or body or header
cd /usr/lib
./gvfsd-dav ssl=true user=username host=dav.example.org prefix=/remote.php/webdav/

Just outsource the log to another secure place (which you can delete), if you are scared to expose personal data.

For me it looks like that the iserv server use deprecated features, which has been removed on newer libs, but on Ubuntu it still works. But that is just a guess. Manjaro is rolling forward and if you need to work with such servers, then my best advice would be staying at a LTS release of Ubuntu / Debian and sort of, since iserv uses debian on their servers.

On my installation (unstable), I have 2 versions of libsoup:

$ ls -al /usr/lib/libsoup-[0-9].[0-9].so.[0-9].[0-9]* 
-rwxr-xr-x 1 root root 653880  7. Jan 19:03 /usr/lib/libsoup-2.4.so.1.11.2
-rwxr-xr-x 1 root root 596488  1. Apr 00:28 /usr/lib/libsoup-3.0.so.0.0.5

It is a bit hacky, but you can try this…

Since gvfsd-dav is linked to libsoup-3.0.so.0, which is a symlink:

$ ldd gvfsd-dav | grep "soup" 
	libsoup-3.0.so.0 => /usr/lib/libsoup-3.0.so.0 (0x00007fcc46978000)
$ ls -al  /usr/lib/libsoup-3.0.so.0
lrwxrwxrwx 1 root root 20  1. Apr 00:28 /usr/lib/libsoup-3.0.so.0 -> libsoup-3.0.so.0.0.5

we can symlink the old lib:

sudo ln -srfv /usr/lib/libsoup-2.4.so.1.11.2 /usr/lib/libsoup-3.0.so.0

Now gvfsd-dav should use v2.4 instead of v3.0.

Try to connect with DEBUG variables enabled.

Revert it:

sudo ln -srfv /usr/lib/libsoup-3.0.so.0.0.5 /usr/lib/libsoup-3.0.so.0

I searched the Ubuntu sources… Jammy (22.04) still uses libsoup2.4 :

libsoup2.4-1 (>= 2.58.2)
HTTP library implementation in C -- Shared library

Ubuntu – Details of package gvfs-backends in jammy

So that is the difference.

Thanks megavolt for your super detailed reply to my problem!
Due to lack of time I wasn’t able to answer to your suggestions. Creating a link to the older version of libsoup did not work for me unfortunately.
But since yesterday, after being patient for a while, the problem got solved by itself. After installing a huge update including the upgrade to gnome 42 now I can mount my IServ-webdav folders again. I also had reported the issue to the IServ-support so I don’t know if they also did something to solve this issue (e.g. implementing newes libsoup-support?) but everything is working well again.

So… have a nice one!