You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PROPFIND requests to the fixed CardDAV collection path (/contacts/default) return a syntactically valid but completely empty <multistatus> response, even when the account has confirmed contacts present (verified directly in Proton's web UI). This affects both collection-level property discovery and Depth:1 listing of address book members.
Environment
hydroxide installed via go install github.com/emersion/hydroxide/cmd/hydroxide@latest
Also reproduced identically on acheong08/ferroxide (a fork of this project) — see cross-filed issue there
Debian 13 (Trixie)
Account authenticated successfully via hydroxide auth; bridge password confirmed working
Per RFC 4918/6352, the response should include at minimum one <response> element for the collection itself, plus one <response> per contact at Depth:1.
Zero <response> elements, regardless of Depth (0 or 1), regardless of requested props (specific props or <allprop/>), regardless of trailing slash on the URL.
Additional notes
vdirsyncer's own discovery also fails against this same endpoint with InvalidXMLResponse("Couldn't find home-set."), since current-user-principal and addressbook-home-set PROPFIND queries return the same empty multistatus.
This matches the symptom in Carddav does not work in thunderbird. #217 ("Found no address books to add for the specified account") and CardDAV in Thunderbird/CardBook #44 (client PROPFIND to .well-known/carddav returning not-found) — but reproduces even when pointed directly at the documented fixed path (/contacts/default), with contacts confirmed present server-side, ruling out both a discovery-layer limitation and an empty-account explanation.
CalDAV (via the ferroxide fork, which adds calendar support) works correctly with the same account against the same discovery-style flow, suggesting the issue is isolated to the CardDAV listing/PROPFIND handler rather than authentication or the shared HTTP layer.
Happy to provide -debug server-side logs or test further if useful.
Summary
PROPFIND requests to the fixed CardDAV collection path (
/contacts/default) return a syntactically valid but completely empty<multistatus>response, even when the account has confirmed contacts present (verified directly in Proton's web UI). This affects both collection-level property discovery and Depth:1 listing of address book members.Environment
go install github.com/emersion/hydroxide/cmd/hydroxide@latestacheong08/ferroxide(a fork of this project) — see cross-filed issue therehydroxide auth; bridge password confirmed workingSteps to reproduce
hydroxide auth user@example.com— succeeds, bridge password generatedhydroxide carddav(orferroxide serve) — starts cleanly, listens on 127.0.0.1:8080Expected
Per RFC 4918/6352, the response should include at minimum one
<response>element for the collection itself, plus one<response>per contact at Depth:1.Actual
Zero
<response>elements, regardless of Depth (0 or 1), regardless of requested props (specific props or<allprop/>), regardless of trailing slash on the URL.Additional notes
InvalidXMLResponse("Couldn't find home-set."), sincecurrent-user-principalandaddressbook-home-setPROPFIND queries return the same empty multistatus..well-known/carddavreturning not-found) — but reproduces even when pointed directly at the documented fixed path (/contacts/default), with contacts confirmed present server-side, ruling out both a discovery-layer limitation and an empty-account explanation.Happy to provide
-debugserver-side logs or test further if useful.