{"record":{"id":"d35e81dfbf08a516","repo":"home-assistant/core","slug":"setup-parse-exception","errorCode":null,"errorMessage":"setup_parse_exception","messagePattern":"setup_parse_exception","errorType":"exception","errorClass":"UpdateFailed","httpStatus":null,"severity":"error","filePath":"homeassistant/components/bring/coordinator.py","lineNumber":97,"sourceCode":"            name=DOMAIN,\n            update_interval=timedelta(seconds=90),\n        )\n        self.bring = bring\n        self.previous_lists: set[str] = set()\n\n    @override\n    async def _async_update_data(self) -> dict[str, BringData]:\n        \"\"\"Fetch the latest data from bring.\"\"\"\n\n        try:\n            self.lists = (await self.bring.load_lists()).lists\n        except BringRequestException as e:\n            raise UpdateFailed(\n                translation_domain=DOMAIN,\n                translation_key=\"setup_request_exception\",\n            ) from e\n        except BringParseException as e:\n            raise UpdateFailed(\n                translation_domain=DOMAIN,\n                translation_key=\"setup_parse_exception\",\n            ) from e\n        except BringAuthException as e:\n            raise ConfigEntryAuthFailed(\n                translation_domain=DOMAIN,\n                translation_key=\"setup_authentication_exception\",\n                translation_placeholders={CONF_EMAIL: self.bring.mail},\n            ) from e\n\n        if self.previous_lists - (\n            current_lists := {lst.listUuid for lst in self.lists}\n        ):\n            self._purge_deleted_lists()\n        new_lists = current_lists - self.previous_lists\n        self.previous_lists = current_lists\n\n        list_dict: dict[str, BringData] = {}","sourceCodeStart":79,"sourceCodeEnd":115,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/bring/coordinator.py#L79-L115","documentation":"UpdateFailed with translation_key setup_parse_exception (bring/coordinator.py:97), rendered as 'Failed to parse server response, try again later'. Raised when load_lists() raises BringParseException — the HTTP request succeeded but the response body could not be parsed (invalid/unexpected JSON).","triggerScenarios":"The Bring! server returns a 200 with malformed or schema-shifted JSON for the list endpoint; the bring-client library then raises BringParseException, converted here to UpdateFailed.","commonSituations":"Bring! deploying a breaking API change before the client library catches up; a proxy or captive portal injecting an HTML error page where JSON is expected; version mismatch between the installed bring-client and the live API.","solutions":["Update Home Assistant (which pins bring-client) to get a library compatible with the current API schema.","Retry later — transient parse failures during server-side rollouts usually clear.","Verify no proxy/captive portal is intercepting the response (curl the API from the HA host).","Report with debug logs if it persists across updates."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Update HA core promptly so bring-client tracks the live API schema.","Treat parse errors as server-side unless other JSON APIs also break.","Keep debug logs enabled during Bring! incident windows to capture payloads."],"tags":["bring","home-assistant","parsing","api-change","coordinator"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}