Duplicate first path segment with Virtual File System

Hi!

We are on Windows 11 and Nextcloud client version 33.0.4

I just switched a few of my users to the Virtual File System. Since then I get tons of errors in my server log which obviously point to incorrect file paths with duplicated first path segments.

One sample:
I have a folder “Audits” on root level (to be precise, it is a folder that has been shared with the respective user) which I sync into C:\Audits. The error message is: NotFound File with name //AuditsAudits could not be located

The full error:

{
  "reqId": "...",
  "level": 1,
  "time": "...",
  "remoteAddr": "...",
  "user": "XY",
  "app": "no app in context",
  "method": "PROPFIND",
  "url": "/remote.php/dav/files/XY/AuditsAudits/XY",
  "message": "Uncaught exception",
  "userAgent": "Mozilla/5.0 (Windows) mirall/33.0.4 (build 20260504) (Nextcloud, windows-10.0.26200 ClientArchitecture: x86_64 OsArchitecture: x86_64)",
  "version": "32.0.3.2",
  "clientReqId": "...",
  "exception": {
    "Exception": "Sabre\\DAV\\Exception\\NotFound",
    "Message": "File with name //AuditsAudits could not be located",
    "Code": 0,
    "Trace": [
      {
        "file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Tree.php",
        "line": 95,
        "function": "getChild",
        "class": "OCA\\DAV\\Connector\\Sabre\\Directory",
        "type": "->",
        "args": [
          "AuditsAudits"
        ]
      },
      {
        "file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
        "line": 971,
        "function": "getNodeForPath",
        "class": "Sabre\\DAV\\Tree",
        "type": "->",
        "args": [
          "files/XY/AuditsAudits/XY"
        ]
      },
      {
        "file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
        "line": 1664,
        "function": "getPropertiesIteratorForPath",
        "class": "Sabre\\DAV\\Server",
        "type": "->",
        "args": [
          "files/XY/AuditsAudits/XY",
          [
            "{http://owncloud.org/ns}share-types",
            "{http://owncloud.org/ns}permissions",
            "{http://nextcloud.org/ns}is-mount-root"
          ],
          1
        ]
      },
      {
        "file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
        "line": 1649,
        "function": "writeMultiStatus",
        "class": "Sabre\\DAV\\Server",
        "type": "->",
        "args": [
          {
            "__class__": "Sabre\\Xml\\Writer",
            "elementMap": [],
            "contextUri": "/remote.php/dav/",
            "namespaceMap": {
              "DAV:": "d",
              "http://sabredav.org/ns": "s",
              "http://owncloud.org/ns": "oc",
              "http://nextcloud.org/ns": "nc"
            },
            "classMap": []
          },
          {
            "__class__": "Generator"
          },
          false
        ]
      },
      {
        "file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php",
        "line": 346,
        "function": "generateMultiStatus",
        "class": "Sabre\\DAV\\Server",
        "type": "->",
        "args": [
          {
            "__class__": "Generator"
          },
          false
        ]
      },
      {
        "file": "/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php",
        "line": 89,
        "function": "httpPropFind",
        "class": "Sabre\\DAV\\CorePlugin",
        "type": "->",
        "args": [
          {
            "__class__": "Sabre\\HTTP\\Request"
          },
          {
            "__class__": "Sabre\\HTTP\\Response"
          }
        ]
      },
      {
        "file": "/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php",
        "line": 472,
        "function": "emit",
        "class": "Sabre\\DAV\\Server",
        "type": "->",
        "args": [
          "method:PROPFIND",
          [
            {
              "__class__": "Sabre\\HTTP\\Request"
            },
            {
              "__class__": "Sabre\\HTTP\\Response"
            }
          ]
        ]
      },
      {
        "file": "/var/www/html/apps/dav/lib/Connector/Sabre/Server.php",
        "line": 211,
        "function": "invokeMethod",
        "class": "Sabre\\DAV\\Server",
        "type": "->",
        "args": [
          {
            "__class__": "Sabre\\HTTP\\Request"
          },
          {
            "__class__": "Sabre\\HTTP\\Response"
          }
        ]
      },
      {
        "file": "/var/www/html/apps/dav/lib/Server.php",
        "line": 424,
        "function": "start",
        "class": "OCA\\DAV\\Connector\\Sabre\\Server",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/apps/dav/appinfo/v2/remote.php",
        "line": 22,
        "function": "exec",
        "class": "OCA\\DAV\\Server",
        "type": "->",
        "args": []
      },
      {
        "file": "/var/www/html/remote.php",
        "line": 151,
        "args": [
          "/var/www/html/apps/dav/appinfo/v2/remote.php"
        ],
        "function": "require_once"
      }
    ],
    "File": "/var/www/html/apps/dav/lib/Connector/Sabre/Directory.php",
    "Line": 210,
    "message": "Uncaught exception",
    "exception": [],
    "CustomMessage": "Uncaught exception"
  },
  "id": "..."
}

Has anybody else encountered that?

I have already tried to clear the cache and re-sync but it happens again. And it happens on three different clients.

Thank you!

Since the path appears to be coming from the client, check the client side logs for some possible clues:

Thank you, but I just find the same error but no indication where it comes from:

2026-05-04 21:50:16:411 [ info nextcloud.sync.accessmanager C:\Users\User\AppData\Local\Temp\windows-39139\client-building\desktop\src\libsync\accessmanager.cpp:72 ]:	6 "PROPFIND" "https://nextcloud.MYDOMAIN.X/remote.php/dav/files/USERNAME/AuditsAudits/FILENAME" has X-Request-ID "6b9c67f5-eeb3-4180-8418-c9b9dd4e9036"
2026-05-04 21:50:16:412 [ info nextcloud.sync.networkjob C:\Users\User\AppData\Local\Temp\windows-39139\client-building\desktop\src\libsync\abstractnetworkjob.cpp:382 ]:	OCC::LsColJob created for "https://nextcloud.MYDOMAIN.X" + "/AuditsAudits/FILENAME" ""
2026-05-04 21:50:16:425 [ info nextcloud.gui.shellextensions.server C:\Users\User\AppData\Local\Temp\windows-39139\client-building\desktop\src\gui\shellextensionsserver.cpp:135 ]:	LsColJob is already running for path:  "Audits/FILENAME"
2026-05-04 21:50:16:439 [ info nextcloud.gui.shellextensions.server C:\Users\User\AppData\Local\Temp\windows-39139\client-building\desktop\src\gui\shellextensionsserver.cpp:135 ]:	LsColJob is already running for path:  "Audits/FILENAME"
2026-05-04 21:50:16:446 [ info nextcloud.gui.shellextensions.server C:\Users\User\AppData\Local\Temp\windows-39139\client-building\desktop\src\gui\shellextensionsserver.cpp:135 ]:	LsColJob is already running for path:  "Audits/FILENAME"
2026-05-04 21:50:16:489 [ info nextcloud.sync.credentials.webflow C:\Users\User\AppData\Local\Temp\windows-39139\client-building\desktop\src\gui\creds\webflowcredentials.cpp:412 ]:	request finished QUrl("https://nextcloud.MYDOMAIN.X/remote.php/dav/files/USERNAME/AuditsAudits/FILENAME") with request id "6b9c67f5-eeb3-4180-8418-c9b9dd4e9036"
2026-05-04 21:50:16:489 [ warning nextcloud.sync.networkjob C:\Users\User\AppData\Local\Temp\windows-39139\client-building\desktop\src\libsync\abstractnetworkjob.cpp:488 ]:	Network request error "Error transferring https://nextcloud.MYDOMAIN.X/remote.php/dav/files/USERNAME/AuditsAudits/FILENAME - server replied: Not Found" HTTP status 404 httpReason "Not Found"
2026-05-04 21:50:16:490 [ warning nextcloud.sync.networkjob C:\Users\User\AppData\Local\Temp\windows-39139\client-building\desktop\src\libsync\abstractnetworkjob.cpp:219 ]:	QNetworkReply::ContentNotFoundError "Es konnte nicht gefunden werden, wonach Sie gesucht haben. M�glicherweise wurde es verschoben oder gel�scht. Wenn Sie Hilfe ben�tigen, wenden Sie sich an Ihre Serveradministration." QVariant(int, 404)
2026-05-04 21:50:16:490 [ warning nextcloud.sync.credentials.webflow C:\Users\User\AppData\Local\Temp\windows-39139\client-building\desktop\src\gui\creds\webflowcredentials.cpp:213 ]:	QNetworkReply::ContentNotFoundError
2026-05-04 21:50:16:490 [ warning nextcloud.sync.credentials.webflow C:\Users\User\AppData\Local\Temp\windows-39139\client-building\desktop\src\gui\creds\webflowcredentials.cpp:214 ]:	"Error transferring https://nextcloud.MYDOMAIN.X/remote.php/dav/files/USERNAME/AuditsAudits/FILENAME - server replied: Not Found"
2026-05-04 21:50:16:490 [ warning nextcloud.sync.networkjob C:\Users\User\AppData\Local\Temp\windows-39139\client-building\desktop\src\libsync\abstractnetworkjob.cpp:488 ]:	Network request error "Error transferring https://nextcloud.MYDOMAIN.X/remote.php/dav/files/USERNAME/AuditsAudits/FILENAME - server replied: Not Found" HTTP status 404 httpReason "Not Found"
2026-05-04 21:50:16:490 [ info nextcloud.sync.networkjob.lscol C:\Users\User\AppData\Local\Temp\windows-39139\client-building\desktop\src\libsync\networkjobs.cpp:537 ]:	LSCOL of QUrl("https://nextcloud.MYDOMAIN.X/remote.php/dav/files/USERNAME/AuditsAudits/FILENAME") FINISHED WITH STATUS "ContentNotFoundError Es konnte nicht gefunden werden, wonach Sie gesucht haben. M�glicherweise wurde es verschoben oder gel�scht. Wenn Sie Hilfe ben�tigen, wenden Sie sich an Ihre Serveradministration."
2026-05-04 21:50:16:490 [ warning nextcloud.gui.shellextensions.server C:\Users\User\AppData\Local\Temp\windows-39139\client-building\desktop\src\gui\shellextensionsserver.cpp:205 ]:	LSCOL job error "Error transferring https://nextcloud.MYDOMAIN.X/remote.php/dav/files/USERNAME/AuditsAudits/FILENAME - server replied: Not Found" 404 QNetworkReply::ContentNotFoundError

It looks like the the webdav path for some reason already contains the foldername and is duplicated on concatenation somewhere.

I remember discussions some time ago but don’t find the topics right now. Search the forum maybe you find similar problems and hopefully a solution as well

Thanks Willi. We decided to not use the Virtual File System as we are experiencing different kind of sync issues when using it so it doesn’t feel very mature.