pimutils / vdirsyncer

📇 Synchronize calendars and contacts.

Home Page:https://vdirsyncer.pimutils.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Sync fails randomly with Nextcloud's "Contact birthdays" calendar.

nicemicro opened this issue · comments

I have syncing of calendars set up with Nextcloud that generates a "Contact birthdays" calendar in the collection automatically. Sometimes syncing this calendar fails, and then everything remains unsynced. If I do a vdirsyncer sync calendars/other_calendar, that will work properly. Not with the contact birthdays, unfortunately.

vdirsyncer discover manages to find the calendar, and vdirsyncer metasync successfuly syncs metadata.

I tried syncing again, changing conflict resolution so that "b wins", but that did not help.

Might be related to #832.

  • Your vdirsyncer version
    • 0.19.2-1
  • If applicable, which server software (and which version) you're using
    • Nextcloud hub
  • Your Python version
    • Python 3.11.6
  • Your operating system
    • Arch Linux
  • Your config file
[pair calendars]
a = "local_cal"
b = "cal"
collections = ["from a", "from b"]
metadata = ["color"]
conflict_resolution = ["command", "nvim", "-d"]

[storage local_cal]
type = "filesystem"
path = "~/.local/share/calendars/nextcloud"
fileext = ".ics"

[storage cal]
type = "caldav"
url = "https://xxxxxxxxxxxxxxxxxxxxxxx/remote.php/dav"
username = "xxxxxxxxxx"
password.fetch = ["command", "secret-tool", "lookup", "server", "nextcloud", "username", "xxxxxxxxxx", "app", "vdirsyncer"]
  • Use vdirsyncer -vdebug for debug output. The output is sensitive, but
    please attach at least the last few lines before the error (if applicable),
    censored as necessary. This is almost always the most useful information.
error: Unknown error occurred for calendars/contact_birthdays: Not Found
error: Use `-vdebug` to see the full traceback.
debug:   File "/usr/lib/python3.11/site-packages/vdirsyncer/cli/utils.py", line 70, in handle_cli_error
debug:     raise e
debug:   File "/usr/lib/python3.11/site-packages/vdirsyncer/sync/__init__.py", line 160, in sync
debug:     await action.run(a_info, b_info, conflict_resolution, partial_sync)
debug:   File "/usr/lib/python3.11/site-packages/vdirsyncer/sync/__init__.py", line 183, in run
debug:     await self._run_impl(a, b)
debug:   File "/usr/lib/python3.11/site-packages/vdirsyncer/sync/__init__.py", line 234, in _run_impl
debug:     meta.etag = await self.dest.storage.update(meta.href, self.item, meta.etag)
debug:                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
debug:   File "/usr/lib/python3.11/site-packages/vdirsyncer/storage/base.py", line 22, in inner
debug:     return await f(self, *args, **kwargs)
debug:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
debug:   File "/usr/lib/python3.11/site-packages/vdirsyncer/storage/base.py", line 22, in inner
debug:     return await f(self, *args, **kwargs)
debug:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
debug:   File "/usr/lib/python3.11/site-packages/vdirsyncer/storage/dav.py", line 596, in update
debug:     href, etag = await self._put(self._normalize_href(href), item, etag)
debug:                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
debug:   File "/usr/lib/python3.11/site-packages/vdirsyncer/storage/dav.py", line 569, in _put
debug:     response = await self.session.request(
debug:                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
debug:   File "/usr/lib/python3.11/site-packages/vdirsyncer/storage/dav.py", line 416, in request
debug:     return await http.request(method, url, session=session, **more)
debug:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
debug:   File "/usr/lib/python3.11/site-packages/vdirsyncer/http.py", line 155, in request
debug:     raise exceptions.NotFoundError(response.reason)