crash when syncing raise exceptions.NotFoundError(href)
vdirsyncer, version 0.19.3, still present in main Ubuntu 22.04.5, 24.04 python 3.10.12, 3.12.3
debug: Already normalized: '/caldav/v2/[email protected]/events/x-apple-reminderkit%3A//REMCDReminder/0C2F0D87-XXXX-XXXX-XXXX-XXXXXXXX.ics'
debug: Skipping '/caldav/v2/[email protected]/events/x-apple-reminderkit%3A//REMCDReminder/0C2F0D87-XXXX-XXXX-XXXX-XXXXXXXX.ics', properties are missing.
error: Unknown error occurred for my_gcals/family: /caldav/v2/[email protected]/events/x-apple-reminderkit%3A//REMCDReminder/0C2F0D87-XXXX-XXXX-XXXX-XXXXXXXX.ics
error: Use `-vdebug` to see the full traceback.
debug: File "/vdirsync/vdirsyncer/cli/tasks.py", line 74, in sync_collection
debug: await sync.sync(
debug: File "/vdirsync/vdirsyncer/sync/__init__.py", line 150, in sync
debug: b_nonempty = await b_info.prepare_new_status()
debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
debug: File "/vdirsync/vdirsyncer/sync/__init__.py", line 69, in prepare_new_status
debug: async for href, item, etag in self.storage.get_multi(prefetch):
debug: File "/vdirsync/vdirsyncer/storage/dav.py", line 551, in get_multi
debug: raise exceptions.NotFoundError(href)
Still a problem from latest main
The offending xml/href seems to be a not found response (should have been detected earlier??)
<ns0:multistatus xmlns:ns0="DAV:">
<ns0:response> <ns0:href>/caldav/v2/[email protected]/events/x-apple-reminderkit%3A//REMCDReminder/0C2F0D87-XXXX-XXXX-XXXX-XXXXXXXX.ics</ns0:href>
<ns0:status>HTTP/1.1 404 Not Found</ns0:status>
</ns0:response>
</ns0:multistatus>
no surprise there are no propstat
Interestingly, I can remove the offending raise, without any (obvious) downside.
--- a/vdirsyncer/storage/dav.py
+++ b/vdirsyncer/storage/dav.py
@@ -547,8 +547,8 @@ class DAVStorage(Storage):
dav_logger.warning(f"Server sent unsolicited item: {href}")
else:
rv.append((href, Item(raw), etag))
- for href in hrefs_left:
- raise exceptions.NotFoundError(href)
+# for href in hrefs_left:
+# raise exceptions.NotFoundError(href)
possibly duplicate of #1151
There is nothing standing out in the event itself. except for one thing:
the traceback has .ics suffix on the href, while the id in the event has not. Don't know if that's significant?
{
"kind": "calendar#event",
"etag": "\"3472660206160000\"",
"id": "xxxxxxxx",
"status": "confirmed",
"htmlLink": "https://www.google.com/calendar/event?eid=xxxxxxxx",
"created": "2025-01-08T09:55:03.000Z",
"updated": "2025-01-08T09:55:03.080Z",
"summary": "clean_ascii",
"creator": {
"email": "clean_ascii_email",
"displayName": "TTyridal"
},
"organizer": {
"email": "[email protected]",
"displayName": "AsciiCalendarName",
"self": true
},
"start": {
"dateTime": "2025-03-04T13:00:00+01:00",
"timeZone": "Europe/Oslo"
},
"end": {
"dateTime": "2025-03-04T14:00:00+01:00",
"timeZone": "Europe/Oslo"
},
"iCalUID": "x-apple-reminderkit://REMCDReminder/0C2F0D87-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"sequence": 0,
"reminders": {
"useDefault": true
},
"eventType": "default"
},
The event URL has a colon, and my initial guess would be that we're escaping it wrong.
Possibly related to https://github.com/pimutils/vdirsyncer/issues/1154