home-assistant/core · error · HomeAssistantError
todo_rename_item_failed
Error message
todo_rename_item_failed
What it means
Raised by the rename branch of async_update_todo_item in the Bring To-do entity. When the item is not found in Bring's current state, the integration performs a batch ADD with a brand-new UUID under the new summary; if that batch_update_list call raises BringRequestException, this HomeAssistantError (todo_rename_item_failed) is raised with the new name as placeholder.
Source
Thrown at homeassistant/components/bring/todo.py:208
BringItem(
itemId=current_item.itemId,
spec=item.description or "",
uuid=item.uid,
operation=BringItemOperation.REMOVE,
),
BringItem(
itemId=item.summary or "",
spec=item.description or "",
uuid=str(uuid.uuid4()),
operation=BringItemOperation.ADD
if item.status == TodoItemStatus.NEEDS_ACTION
else BringItemOperation.COMPLETE,
),
],
)
except BringRequestException as e:
raise HomeAssistantError(
translation_domain=DOMAIN,
translation_key="todo_rename_item_failed",
translation_placeholders={"name": item.summary or ""},
) from e
await self.coordinator.async_refresh()
@override
async def async_delete_todo_items(self, uids: list[str]) -> None:
"""Delete an item from the To-do list."""
try:
await self.coordinator.bring.batch_update_list(
self._list_uuid,
[
BringItem(
itemId=uid,
spec="",View on GitHub (pinned to 58a3fdb3ea)
Solutions
- Reload the integration (or force a list refresh) and retry the rename on the current item.
- Re-authenticate the Bring integration if requests consistently fail.
- If the source item was deleted remotely, create it fresh instead of renaming.
- Inspect the chained BringRequestException in logs for the exact API error.
Defensive patterns
Strategy: retry
Try / catch
try:
await todo_entity.async_update_todo_item(item)
except HomeAssistantError as err:
if err.translation_key == "todo_rename_item_failed":
# recreate instead of rename when the source item vanished remotely
await todo_entity.async_create_todo_item(TodoItem(summary=item.summary, uid=str(uuid4())))
else:
raise Prevention
- Refresh the list before renaming items that may have been changed on another client.
- Prefer delete + create flows in automations when the source item's remote existence is uncertain.
- Reload the integration after bulk external changes.
When it happens
Trigger: Renaming a To-do item whose original no longer exists in Bring (so it must be re-added) while the batch request fails: network error, invalid session, API rejecting the new itemId/spec pair.
Common situations: Renaming an item that was removed from the phone app, session expiry, renaming during a coordinator refresh race, special characters in the new name.
Related errors
- todo_save_item_failed
- todo_delete_item_failed
- setup_request_exception
- reaction_request_failed
- todo_update_item_failed
AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14).
Data as JSON: /api/errors/2bb2095fdb3f1992.
Report an issue: GitHub.