Mac VFS sync stuck

,

Hi Everyone,

usually I can figure things out myself, but I am getting to the point where I no longer have any other good ideas. So, thanks for any other good ideas.

I wanted to let my dad use my Nextcloud instances so that he is no longer dependent on the big cloud providers. So far so good. Since he has a lot of files, he wanted to give the new VFS on Mac a try. We installed the app, he dropped a big chunk of his files (150GB maybe), and off it went. Started syncing, all good. Then, at some point it stopped. And since then, it seems half the files are on the server (I can confirm that), and half of the files are still local on the laptop. We can easily confirm that since some of the files you can open, and the other half it is spinning where it is supposed to sync from server, but it won’t. When starting Nextcloud, most of the times it turns into Application not responding after a while, the menu bar item does not show up anymore. Most of the times, there are entries in Console (from FileProviderExt), for example:

Or this:

There is others as well. If you want me to provide specific other data, just let me know.

At this point, I am thinking that my best course of action is to create one complete set of data (from what is on the laptop, and from what is on the server), and then reassess. But I don’t find a good way to copy all the local (laptop) files to some other location, as there is really no way (besides manually opening) to tell. I have tried: rsync, stat, head -c1, tried looking for specific attributes with xattr, to no avail. There seems no good way to tell in a programmatic way that I can script which files will succeed.

So two Questions:

  1. Any good ideas on how I can at least rescue the still local files?
  2. What else can I try to do to get the sync working again.

P.S. Both Server and Desktop are on latest versions.

Much appreciated!

Hello @brensch,
first of all, I think it’s great that you’re using Nextcloud.
Unfortunately, there’s an open bug with the VFS for Mac. Sometimes it works, sometimes it doesn’t.
It helped me connect using the IP-Adress instead of the domain name. Maybe you could try that?

And for your other problem: I would suggest that you re-upload all files to a separate folder. You could do that about the web interface or using for example rsync.
After that, you can move the files in the originally planned destination with the web interface. If there some files are already existing, you can easily replace them (a pop-up asks for it).

So, some updates. There was a network issue that I was able to resolve. The sync seemed to have worked for while, now it seems simply stuck. I am seeing the following in the log:

172.26.0.1 - amayer [15/Aug/2025:15:30:16 +0000] "MKCOL /remote.php/dav/files/amayer/1Password/1Password.opvault HTTP/1.1" 405 770 "-" "Mozilla/5.0 (Macintosh) mirall/3.17.0 (Nextcloud, macos-24.6.0 ClientArchitecture: arm64 OsArchitecture: arm64)"

Also for a lot of other directories.

When I manually curl that request:

curl -i -u 'REDACTED' -X MKCOL "https://myserver/remote.php/dav/files/amayer/1Password/1Password.opvault"
HTTP/2 405
server: openresty
date: Fri, 15 Aug 2025 15:33:18 GMT
content-type: application/xml; charset=utf-8
content-length: 247
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
x-robots-tag: noindex, nofollow
x-xss-protection: 1; mode=block
referrer-policy: no-referrer
x-powered-by: PHP/8.3.24
set-cookie: oc4qj1t66nw8=65d5425b91972b60921553ca1172355f; path=/; secure; HttpOnly; SameSite=Lax
set-cookie: oc_sessionPassphrase=redacted; path=/; secure; HttpOnly; SameSite=Lax
set-cookie: oc4qj1t66nw8=65d5425b91972b60921553ca1172355f; path=/; secure; HttpOnly; SameSite=Lax
content-security-policy: default-src 'none';
set-cookie: __Host-nc_sameSiteCookielax=true; path=/; httponly;secure; expires=Fri, 31-Dec-2100 23:59:59 GMT; SameSite=lax
set-cookie: __Host-nc_sameSiteCookiestrict=true; path=/; httponly;secure; expires=Fri, 31-Dec-2100 23:59:59 GMT; SameSite=strict
set-cookie: oc4qj1t66nw8=65d5425b91972b60921553ca1172355f; path=/; secure; HttpOnly; SameSite=Lax
set-cookie: oc4qj1t66nw8=65d5425b91972b60921553ca1172355f; path=/; secure; HttpOnly; SameSite=Lax
set-cookie: oc4qj1t66nw8=ccd813169619e45fb46195453f7afa83; path=/; secure; HttpOnly; SameSite=Lax
set-cookie: cookie_test=test; expires=Fri, 15 Aug 2025 16:33:18 GMT; Max-Age=3600
allow: OPTIONS, GET, HEAD, DELETE, PROPFIND, PUT, PROPPATCH, COPY, MOVE, REPORT
strict-transport-security: max-age=63072000; preload

<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
  <s:exception>Sabre\DAV\Exception\MethodNotAllowed</s:exception>
  <s:message>The resource you tried to create already exists</s:message>
</d:error>

When I check the file system, that directory does not exist.

Any ideas? It seems that sometimes a full system restart makes the sync go a little further. But not much.