{"record":{"id":"725cd8c98b120ea5","repo":"home-assistant/core","slug":"update-error-725cd8","errorCode":null,"errorMessage":"update_error","messagePattern":"update_error","errorType":"exception","errorClass":"UpdateFailed","httpStatus":null,"severity":"error","filePath":"homeassistant/components/braviatv/coordinator.py","lineNumber":214,"sourceCode":"                )\n                return\n            raise UpdateFailed(\n                translation_domain=DOMAIN,\n                translation_key=\"update_error_not_found\",\n                translation_placeholders={\n                    \"device\": self.config_entry.title,\n                },\n            ) from err\n        except BraviaConnectionError, BraviaConnectionTimeout, BraviaTurnedOff:\n            self.is_on = False\n            self.connected = False\n            _LOGGER.debug(\n                \"Update for %s skipped: the TV is turned off\", self.config_entry.title\n            )\n        except BraviaError as err:\n            self.is_on = False\n            self.connected = False\n            raise UpdateFailed(\n                translation_domain=DOMAIN,\n                translation_key=\"update_error\",\n                translation_placeholders={\n                    \"device\": self.config_entry.title,\n                    \"error\": repr(err),\n                },\n            ) from err\n\n    async def async_update_volume(self) -> None:\n        \"\"\"Update volume information.\"\"\"\n        volume_info = await self.client.get_volume_info()\n        if (volume_level := volume_info.get(\"volume\")) is not None:\n            self.volume_level = volume_level / 100\n            self.volume_muted = volume_info.get(\"mute\", False)\n            self.volume_target = volume_info.get(\"target\")\n\n    async def async_update_playing(self) -> None:\n        \"\"\"Update current playing information.\"\"\"","sourceCodeStart":196,"sourceCodeEnd":232,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/braviatv/coordinator.py#L196-L232","documentation":"UpdateFailed with translation_key update_error (coordinator.py:214), rendered as 'Error updating data for {device}: {error}'. It is the catch-all for any BraviaError during _async_update_data that is not NotFound or a connection/off class; before raising, the coordinator marks is_on=False and connected=False, so entities show unavailable/off until the next successful poll.","triggerScenarios":"A poll of get_volume_info / get_playing_time_info / sources or system info raises a generic BraviaError — malformed JSON-RPC response, unexpected API payload, or an HTTP error other than connection loss — while the TV is otherwise reachable.","commonSituations":"Sony firmware changes altering API responses; intermittent 5xx from the TV's embedded web server; bravia-tv library parsing a response shape it does not expect; happens alongside entity state flipping to off/unavailable.","solutions":["Read the {error} repr in the log to identify which API call and payload failed.","Reload the integration or wait for the next coordinator poll — transient malformed responses often clear themselves.","Update Home Assistant / bravia-tv library if the TV firmware changed response formats.","If persistent, capture a debug log (logger: homeassistant.components.braviatv=debug) and report with the TV model/firmware."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Treat single UpdateFailed polls as transient; the coordinator retries automatically.","Keep entities dependent on the TV tolerant of brief unavailable states.","Report recurring parse errors with debug logs instead of masking them."],"tags":["braviatv","home-assistant","coordinator","update-failed","parsing"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}