tchapi / davis

🗓 A simple, fully translatable admin interface for sabre/dav based on Symfony 5 and Bootstrap 5, initially inspired by Baïkal.
https://github.com/users/tchapi/projects/1/views/1
MIT License
405 stars 21 forks source link

app.ERROR: [404]: Sabre\DAV\Exception\NotFound - Node #172

Open 1Luc1 opened 1 month ago

1Luc1 commented 1 month ago

Hello,

I'm facing a problem with the synchronization from with mobile (android / mac) devices. Every time the calendar is synchronized, the following error occurs within the log file (/davis/var/log/prod.log). Nevertheless all entries are synchronized. I'm guessing about a "old"/"dead" node?

[2024-10-16T10:03:31.710596+02:00] app.ERROR: [404]: Sabre\DAV\Exception\NotFound - Node with name '1ba2594f-8a77-4c83-91d4-b1d652ad9fda' could not be found
[{"file":"/var/www/html/davis/vendor/sabre/dav/lib/DAV/Tree.php","line":78,"function":"getChild","class":"Sabre\\CalDAV\\CalendarHome","type":"->"},
{"file":"/var/www/html/davis/vendor/sabre/dav/lib/DAV/Server.php","line":971,"function":"getNodeForPath","class":"Sabre\\DAV\\Tree","type":"->"},
{"file":"/var/www/html/davis/vendor/sabre/dav/lib/DAV/Server.php","line":1662,"function":"getPropertiesIteratorForPath","class":"Sabre\\DAV\\Server","type":"->"},
{"file":"/var/www/html/davis/vendor/sabre/dav/lib/DAV/Server.php","line":1647,"function":"writeMultiStatus","class":"Sabre\\DAV\\Server","type":"->"},
{"file":"/var/www/html/davis/vendor/sabre/dav/lib/DAV/CorePlugin.php","line":346,"function":"generateMultiStatus","class":"Sabre\\DAV\\Server","type":"->"},
{"file":"/var/www/html/davis/vendor/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"httpPropFind","class":"Sabre\\DAV\\CorePlugin","type":"->"},
{"file":"/var/www/html/davis/vendor/sabre/dav/lib/DAV/Server.php","line":472,"function":"emit","class":"Sabre\\DAV\\Server","type":"->"},
{"file":"/var/www/html/davis/vendor/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->"},
{"file":"/var/www/html/davis/src/Controller/DAVController.php","line":305,"function":"start","class":"Sabre\\DAV\\Server","type":"->"},
{"file":"/var/www/html/davis/vendor/symfony/http-kernel/HttpKernel.php","line":163,"function":"dav","class":"App\\Controller\\DAVController","type":"->"},
{"file":"/var/www/html/davis/vendor/symfony/http-kernel/HttpKernel.php","line":75,"function":"handleRaw","class":"Symfony\\Component\\HttpKernel\\HttpKernel","type":"->"},
{"file":"/var/www/html/davis/vendor/symfony/http-kernel/Kernel.php","line":202,"function":"handle","class":"Symfony\\Component\\HttpKernel\\HttpKernel","type":"->"},
{"file":"/var/www/html/davis/public/index.php","line":28,"function":"handle","class":"Symfony\\Component\\HttpKernel\\Kernel","type":"->"}
] []

Here is the error from OpenSync Android App:

<?xml version='1.0' encoding='UTF-8' ?><propfind xmlns="DAV:" xmlns:CAL="urn:ietf:params:xml:ns:caldav" xmlns:CARD="urn:ietf:params:xml:ns:carddav"><prop><n0:getctag xmlns:n0="http://calendarserver.org/ns/" /></prop></propfind>

HTTP RESPONSE:
http/1.1 404 Not Found
Cache-Control: max-age=0, must-revalidate, private
Connection: keep-alive
Content-Type: application/xml; charset=utf-8
Date: Tue, 15 Oct 2024 12:09:43 GMT
DAV: 1, 3, extended-mkcol, access-control, calendarserver-principal-property-search, resource-sharing, calendar-access, calendar-proxy, calendar-auto-schedule, calendar-availability, calendarserver-sharing
Expires: Tue, 15 Oct 2024 12:09:43 GMT
Server: nginx/1.18.0
Strict-Transport-Security: max-age=31536000
Transfer-Encoding: chunked
Vary: Brief,Prefer
X-Sabre-Version: 4.4.0

<?xml version="1.0" encoding="utf-8"?>[LF]
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">[LF]
  <s:sabredav-version>4.4.0</s:sabredav-version>[LF]
  <s:exception>Sabre\DAV\Exception\NotFound</s:exception>[LF]
  <s:message>Node with name 'bb1392cd-d0f5-481c-b6d7-fa3398f547a7' could not be found</s:message>[LF]
</d:error>[LF]

EXCEPTION:
at.bitfire.dav4android.exception.NotFoundException: 404 Not Found
    at at.bitfire.dav4android.DavResource.checkStatus(DavResource.java:317)
    at at.bitfire.dav4android.DavResource.checkStatus(DavResource.java:298)
    at at.bitfire.dav4android.DavResource.propfind(DavResource.java:283)
    at com.deependhulla.opensync.syncadapter.CalendarSyncManager.queryCapabilities(CalendarSyncManager.java:91)
    at com.deependhulla.opensync.syncadapter.SyncManager.performSync(SyncManager.java:142)
    at com.deependhulla.opensync.syncadapter.CalendarsSyncAdapterService$SyncAdapter.onPerformSync(CalendarsSyncAdapterService.java:70)
    at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:354)

SOFTWARE INFORMATION
OpenSync version: 1.5.0.3-ose (145) Tue Apr 18 09:03:24 GMT+02:00 2017
Installed from: com.google.android.packageinstaller
JB Workaround installed: no

CONFIGURATION
Power saving disabled: no
android.permission.READ_CONTACTS permission: denied
android.permission.WRITE_CONTACTS permission: denied
android.permission.READ_CALENDAR permission: granted
android.permission.WRITE_CALENDAR permission: granted
org.dmfs.permission.READ_TASKS permission: denied
org.dmfs.permission.WRITE_TASKS permission: denied
System-wide synchronization: automatically
Davis v4.0.0
SabreDav v4.4.0

I know there is already Davis v5.2.0 and SabreDav v4.5.0 but I couldn't really find any changes which belong to this error.

If I look through all nodes within the sabre/dav interface I couldn't find the mentioned missing node. image

Does anyone know what could cause this problem?

tchapi commented 1 month ago

👋🏼 If you setup a brand new client (just for the test), does it issue the same error? I'm also guessing an "old" node that your clients have kept somewhere, and they try to synchronize

Also, maybe the clients have comprehensive logs of what they're trying to do / fetch, and you could connect the dots from there?