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
{{ message }}
Repository navigation
save(no_overwrite=True): a UID found by the fallback search is a plain ConsistencyError #806
Disclaimer: AI-generated text below the line, generated by Claude Opus 5.5, from the prompt:
yes [to drafting caldav issues for two findings of the calendaring 2.1 code review]
When the server enforces the UID precondition itself, a clash on save(no_overwrite=True) raises UidConflictConsistencyError (#756, #802). When caldav has to search for the UID first instead, it raises a plain ConsistencyError("no_overwrite flag was set, but object already exists") from _validate_save_constraints(). That happens whenever save.no-uid-conflict is not full, which includes every server without hints. The plain ConsistencyError is the same exception as for "the URL is taken" (If-None-Match: * failed).
So a caller cannot tell "another object holds this UID" from "something is already stored at this name". The answer differs only by server, not by what happened. calendaring reports which one was taken (AlreadyExistsError.taken), and currently guesses wrong on those servers.
Suggested fix: in _validate_save_constraints(), raise UidConflictConsistencyError when the object found lives at a different URL than self.url, and keep ConsistencyError when it is the same resource.
Activity
refactor: use caldav 3.6 error attributes (2.1)
refactor: use caldav 3.6 error attributes (2.1)