home-assistant/core · error · UpdateFailed

Connection failed during update for zone {self.state.zn}

Error message

Connection failed during update for zone {self.state.zn}

What it means

UpdateFailed raised by the Arcam FMJ coordinator when state.update() raises ConnectionFailed while doing a manual refresh of a zone. It tells DataUpdateCoordinator that the AVR connection (telnet-style socket to the amplifier) dropped, marking entities unavailable and scheduling retries.

Source

Thrown at homeassistant/components/arcam_fmj/coordinator.py:80

            device_name += f" Zone {zone}"

        self.device_name = device_name
        self.device_info = DeviceInfo(
            identifiers={(DOMAIN, unique_id_device)},
            manufacturer="Arcam",
            model="Arcam FMJ AVR",
            name=device_name,
        )
        self.zone_unique_id = f"{unique_id}-{zone}"

    @override
    async def _async_update_data(self) -> None:
        """Fetch data for manual refresh."""
        try:
            self.update_in_progress = True
            await self.state.update()
        except ConnectionFailed as err:
            raise UpdateFailed(
                f"Connection failed during update for zone {self.state.zn}"
            ) from err
        finally:
            self.update_in_progress = False

    @callback
    def _async_notify_packet(self, packet: ResponsePacket | AmxDuetResponse) -> None:
        """Packet callback to detect changes to state."""
        if (
            not isinstance(packet, ResponsePacket)
            or packet.zn != self.state.zn
            or self.update_in_progress
        ):
            return

        self.async_update_listeners()

    @asynccontextmanager

View on GitHub (pinned to 58a3fdb3ea)

Solutions

  1. Verify the AVR is powered on and its IP is reachable (ping / check router for DHCP changes); reserve its IP.
  2. If the IP changed, reconfigure the integration host setting or rely on the configured hostname.
  3. Ensure no other control app holds the AVR's single TCP control session.
  4. Wait for the coordinator's next retry once connectivity is restored.
Defensive patterns

Strategy: try-catch

Try / catch

Catch ConnectionFailed around state.update() and raise UpdateFailed(...) from err so DataUpdateCoordinator handles backoff; do not swallow it, or entities will show stale data.

Prevention

When it happens

Trigger: Coordinator _async_update_data calls await self.state.update() and the underlying arcam-fmj client cannot reach the AVR: powered off, IP changed, port closed, or socket closed after idle. The f-string embeds self.state.zn to identify which zone failed.

Common situations: AVR in standby/off (socket refused), DHCP lease renewed giving the receiver a new IP, network drop, or multiple clients connected when the AVR only accepts one control connection.

Related errors


AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14). Data as JSON: /api/errors/b157cb778f419ec4. Report an issue: GitHub.