home-assistant/core · error · HomeAssistantError
CalDAV delete error: {err}
Error message
CalDAV delete error: {err} What it means
HomeAssistantError raised in async_delete_todo_items when item.delete fails for an individual item with ConnectionError, Timeout, or DAVError. Deletes run serially (some servers do not support concurrent modifications), so earlier items may already be deleted before the failure aborts the loop.
Source
Thrown at homeassistant/components/caldav/todo.py:203
"""Delete To-do items."""
tasks = (
self.hass.async_add_executor_job(self._calendar.todo_by_uid, uid)
for uid in uids
)
try:
items = await asyncio.gather(*tasks)
except NotFoundError as err:
raise HomeAssistantError("Could not find To-do item") from err
except (requests.ConnectionError, requests.Timeout, DAVError) as err:
raise HomeAssistantError(f"CalDAV lookup error: {err}") from err
# Run serially as some CalDAV servers do not support concurrent modifications
for item in items:
try:
await self.hass.async_add_executor_job(item.delete)
except (requests.ConnectionError, requests.Timeout, DAVError) as err:
raise HomeAssistantError(f"CalDAV delete error: {err}") from err
# refreshing async otherwise it would take too much time
self.hass.async_create_task(self.async_update_ha_state(force_refresh=True))
View on GitHub (pinned to 58a3fdb3ea)
Solutions
- Refresh and re-issue the delete for the remaining items (some may already be gone, yielding the not-found error — delete those individually or refresh first)
- Verify the calendar collection allows deletes for the account in use
- Check server/proxy logs for why the specific DELETE failed
Defensive patterns
Strategy: try-catch
Try / catch
for item in items: # serial by design: some servers reject concurrent writes
try:
await self.hass.async_add_executor_job(item.delete)
except (requests.ConnectionError, requests.Timeout, DAVError) as err:
raise HomeAssistantError(f"CalDAV delete error: {err}") from err Prevention
- After a failed batch delete, refresh and delete the remaining items individually
- Confirm delete permissions on the collection for the account
- Expect partial completion: earlier serial deletes may have succeeded
When it happens
Trigger: A DELETE request for one VTODO fails mid-batch: server refuses/times out on that item, connection drops, or the server rejects deletion of the resource.
Common situations: Partial network failure during a batch delete, server-side locking or permissions preventing deletion of one item, servers that serialize writes slowly.
Related errors
- CalDAV lookup error: {err}
- Timeout connecting to CalDAV server
- Connection error from CalDAV server
- CalDAV save error: {err}
- Could not find To-do item {uid}
AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14).
Data as JSON: /api/errors/8572bf0ff22cf290.
Report an issue: GitHub.