{"record":{"id":"5dd799e85ada41c8","repo":"home-assistant/core","slug":"command-error-not-found","errorCode":null,"errorMessage":"command_error_not_found","messagePattern":"command_error_not_found","errorType":"exception","errorClass":"HomeAssistantError","httpStatus":null,"severity":"error","filePath":"homeassistant/components/braviatv/coordinator.py","lineNumber":58,"sourceCode":"type BraviaTVConfigEntry = ConfigEntry[BraviaTVCoordinator]\n\n\ndef catch_braviatv_errors[_BraviaTVCoordinatorT: BraviaTVCoordinator, **_P](\n    func: Callable[Concatenate[_BraviaTVCoordinatorT, _P], Awaitable[None]],\n) -> Callable[Concatenate[_BraviaTVCoordinatorT, _P], Coroutine[Any, Any, None]]:\n    \"\"\"Catch Bravia errors.\"\"\"\n\n    @wraps(func)\n    async def wrapper(\n        self: _BraviaTVCoordinatorT,\n        *args: _P.args,\n        **kwargs: _P.kwargs,\n    ) -> None:\n        \"\"\"Catch Bravia errors and log message.\"\"\"\n        try:\n            await func(self, *args, **kwargs)\n        except BraviaNotFound as err:\n            raise HomeAssistantError(\n                translation_domain=DOMAIN,\n                translation_key=\"command_error_not_found\",\n                translation_placeholders={\n                    \"device\": self.config_entry.title,\n                },\n            ) from err\n        except (BraviaConnectionError, BraviaConnectionTimeout, BraviaTurnedOff) as err:\n            raise HomeAssistantError(\n                translation_domain=DOMAIN,\n                translation_key=\"command_error_offline\",\n                translation_placeholders={\n                    \"device\": self.config_entry.title,\n                },\n            ) from err\n        except BraviaError as err:\n            raise HomeAssistantError(\n                translation_domain=DOMAIN,\n                translation_key=\"command_error\",","sourceCodeStart":40,"sourceCodeEnd":76,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/braviatv/coordinator.py#L40-L76","documentation":"Produced by the braviatv coordinator's error-catching decorator: the wrapped coordinator method raised BraviaNotFound from the underlying bravia_tv library, meaning the TV's HTTP API answered but the requested command/endpoint does not exist for this device. Re-raised as HomeAssistantError with translation_key 'command_error_not_found' and the device title as placeholder.","triggerScenarios":"Sending a command (channel, input, app launch, setting) the specific TV model/firmware does not support — e.g. an app URI or input that isn't present, a command only available on newer Android TV firmware. Any coordinator update/action hitting a 404-style 'not found' from the TV maps here.","commonSituations":"Model differences (commands valid on one Bravia generation missing on another), app uninstalled so its endpoint 404s, older firmware lacking an API the integration calls.","solutions":["Identify which command triggered it from the automation/log context and stop using that command on this TV.","Update the TV firmware (Settings > System > Software Update) so the API exposes the endpoint.","Reinstall the missing app or re-add the input in the TV, then reload the integration.","Update Home Assistant / bravia_tv library — newer releases map model-specific command sets."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try:\n    await coordinator.async_send_command(cmd)\nexcept HomeAssistantError as err:\n    if err.translation_key == \"command_error_not_found\":\n        _LOGGER.debug(\"command %s unsupported on %s\", cmd, entry.title)","preventionTips":["Prefer generic commands (power, volume, input) over model-specific app/URI commands.","Keep TV firmware updated so the bravia API exposes current endpoints.","Update the bravia_tv library / HA core when new model command maps ship."],"tags":["bravia-tv","not-found","command","home-assistant","coordinator"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}