home-assistant/core · error · ConfigEntryAuthFailed

Blink authorization failed

Error message

Blink authorization failed

What it means

ConfigEntryAuthFailed raised when turning ON the blink motion switch receives UnauthorizedError: the arm request was rejected because the Blink token is invalid. The handler calls async_start_reauth() then raises, flipping the entry into reauth state; the toggle operation is aborted.

Source

Thrown at homeassistant/components/blink/switch.py:83

            name=camera,
            manufacturer=DEFAULT_BRAND,
            model=self._camera.camera_type,
        )

    @override
    async def async_turn_on(self, **kwargs: Any) -> None:
        """Turn the switch on."""
        try:
            await self._camera.async_arm(True)

        except TimeoutError as er:
            raise HomeAssistantError(
                translation_domain=DOMAIN,
                translation_key="failed_arm_motion",
            ) from er
        except UnauthorizedError as er:
            self.coordinator.config_entry.async_start_reauth(self.hass)
            raise ConfigEntryAuthFailed("Blink authorization failed") from er

        await self.coordinator.async_refresh()

    @override
    async def async_turn_off(self, **kwargs: Any) -> None:
        """Turn the switch off."""
        try:
            await self._camera.async_arm(False)

        except TimeoutError as er:
            raise HomeAssistantError(
                translation_domain=DOMAIN,
                translation_key="failed_disarm_motion",
            ) from er
        except UnauthorizedError as er:
            self.coordinator.config_entry.async_start_reauth(self.hass)
            raise ConfigEntryAuthFailed("Blink authorization failed") from er

View on GitHub (pinned to 58a3fdb3ea)

Solutions

  1. Complete the reauth flow in the UI, then re-run the automation/scene
  2. Verify steady-state polling is working (no repeated 401s in logs) after reauth
Defensive patterns

Strategy: try-catch

Try / catch

try:
    await switch.async_turn_on()
except ConfigEntryAuthFailed:
    _LOGGER.warning("Blink reauth required before arm commands will work")

Prevention

When it happens

Trigger: async_arm(True) gets a 401 from Blink because the stored auth token expired between the last successful refresh and this switch command.

Common situations: Switch automation fires hours after the token silently expired; Blink session rotation; account changes on the Blink side.

Related errors


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