Skip to content

Fix PROPFIND and GET with Radicale 3.8 - #373

Open
vitlav wants to merge 1 commit into
etesync:masterfrom
vitlav:radicale-3.8-compat
Open

vitlav wants to merge 1 commit into
etesync:masterfrom
vitlav:radicale-3.8-compat

Conversation

@vitlav

@vitlav vitlav commented Oct 7, 2026

Copy link
Copy Markdown

With Radicale 3.8 the first PROPFIND and any GET of an item return 500 Internal Server Error.

PROPFIND (#372):

File ".../radicale/xmlutils.py", line 94, in make_clark
    ns_prefix, tag = human_tag.split(":", maxsplit=1)
ValueError: not enough values to unpack (expected 2, got 1)

Radicale 3.8 iterates over all keys returned by get_meta() (without a key) and expects DAV property names in the NS:tag form. EtebaseCollection.get_meta() returned raw Etebase meta keys (name, mtime, ...). It now returns only the mapped DAV names (D:displayname, C:calendar-description, ICAL:calendar-color, CR:addressbook-description).

GET:

File ".../radicale/app/get.py", line 192, in do_GET
    assert item.last_modified
AssertionError

Items were created with last_modified = "". It is now taken from the Etebase item mtime (formatted as an HTTP date), falling back to the current time.

Tested with Radicale 3.8.1 and etebase-server 0.14.2: PROPFIND/REPORT/PUT/GET/DELETE for calendars and address books work, changes sync both ways. Note that Radicale >= 3.5.10 also needs the changes from #365.

Fixes #372

Radicale 3.8 iterates over all keys returned by get_meta() without a key
and passes them to xmlutils.make_clark(), which requires the "NS:tag"
form. EtebaseCollection.get_meta() returned raw Etebase meta keys
("name", "mtime", ...), so the first PROPFIND failed with
"ValueError: not enough values to unpack". Return only the mapped DAV
property names.

Radicale 3.8 also asserts a non-empty item.last_modified in GET. Items
were created with an empty string; use the Etebase item "mtime" as an
HTTP date and fall back to the current time.

Fixes etesync#372
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PROPFIND on user home returns 500: ValueError in radicale xmlutils.make_clark (meta keys without prefix:tag form)

1 participant