{"record":{"id":"2bb2095fdb3f1992","repo":"home-assistant/core","slug":"todo-rename-item-failed","errorCode":null,"errorMessage":"todo_rename_item_failed","messagePattern":"todo_rename_item_failed","errorType":"exception","errorClass":"HomeAssistantError","httpStatus":null,"severity":"error","filePath":"homeassistant/components/bring/todo.py","lineNumber":208,"sourceCode":"                        BringItem(\n                            itemId=current_item.itemId,\n                            spec=item.description or \"\",\n                            uuid=item.uid,\n                            operation=BringItemOperation.REMOVE,\n                        ),\n                        BringItem(\n                            itemId=item.summary or \"\",\n                            spec=item.description or \"\",\n                            uuid=str(uuid.uuid4()),\n                            operation=BringItemOperation.ADD\n                            if item.status == TodoItemStatus.NEEDS_ACTION\n                            else BringItemOperation.COMPLETE,\n                        ),\n                    ],\n                )\n\n            except BringRequestException as e:\n                raise HomeAssistantError(\n                    translation_domain=DOMAIN,\n                    translation_key=\"todo_rename_item_failed\",\n                    translation_placeholders={\"name\": item.summary or \"\"},\n                ) from e\n\n        await self.coordinator.async_refresh()\n\n    @override\n    async def async_delete_todo_items(self, uids: list[str]) -> None:\n        \"\"\"Delete an item from the To-do list.\"\"\"\n\n        try:\n            await self.coordinator.bring.batch_update_list(\n                self._list_uuid,\n                [\n                    BringItem(\n                        itemId=uid,\n                        spec=\"\",","sourceCodeStart":190,"sourceCodeEnd":226,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/bring/todo.py#L190-L226","documentation":"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.","triggerScenarios":"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.","commonSituations":"Renaming an item that was removed from the phone app, session expiry, renaming during a coordinator refresh race, special characters in the new name.","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."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"try:\n    await todo_entity.async_update_todo_item(item)\nexcept HomeAssistantError as err:\n    if err.translation_key == \"todo_rename_item_failed\":\n        # recreate instead of rename when the source item vanished remotely\n        await todo_entity.async_create_todo_item(TodoItem(summary=item.summary, uid=str(uuid4())))\n    else:\n        raise","preventionTips":["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."],"tags":["home-assistant","bring","todo","network"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}