home-assistant/core · error · ServiceValidationError

This alert cannot be acknowledged

Error message

This alert cannot be acknowledged

What it means

The alert integration maps the generic turn_off service call to 'acknowledge' and turn_on to 'un-acknowledge'. async_turn_off raises HomeAssistantError(ServiceValidationError) when the alert was configured with can_ack: false (entity.py stores it as self._can_ack at line 66). It is HA's way of saying the acknowledge action is disabled for this alert by configuration, not that the entity is broken.

Source

Thrown at homeassistant/components/alert/entity.py:204

                await self.hass.services.async_call(
                    NOTIFY_DOMAIN, target, msg_payload, context=self._context
                )
            except ServiceNotFound:
                LOGGER.error(
                    "Failed to call notify.%s, retrying at next notification interval",
                    target,
                )

    async def async_turn_on(self, **kwargs: Any) -> None:
        """Async Unacknowledge alert."""
        LOGGER.debug("Reset Alert: %s", self._attr_name)
        self._ack = False
        self.async_write_ha_state()

    async def async_turn_off(self, **kwargs: Any) -> None:
        """Async Acknowledge alert."""
        if not self._can_ack:
            raise ServiceValidationError("This alert cannot be acknowledged")
        self._ack = True
        self.async_write_ha_state()

    async def async_toggle(self, **kwargs: Any) -> None:
        """Async toggle alert."""
        if self._ack:
            return await self.async_turn_on()
        return await self.async_turn_off()

View on GitHub (pinned to 58a3fdb3ea)

Solutions

  1. Set can_ack: true in the alert's YAML configuration and reload the alert integration (or restart HA).
  2. If acknowledging should stay disabled, remove/fix the automation or dashboard action that calls turn_off on this alert.
  3. For voice-assistant mappings, exclude the alert entity from the exposed entities or adjust the assistant's entity aliases.

Example fix

# before
alert:
  - name: Bedroom Door
    entity_id: binary_sensor.door
    state: 'on'
# turn_off -> ServiceValidationError

# after
alert:
  - name: Bedroom Door
    entity_id: binary_sensor.door
    state: 'on'
    can_ack: true
Defensive patterns

Strategy: try-catch

Validate before calling

from homeassistant.helpers.service import ServiceValidationError

# No public attribute exposes can_ack; catch instead.
try:
    await hass.services.async_call(
        'alert', 'turn_off', {'entity_id': 'alert.bedroom_door'}, blocking=True
    )
except ServiceValidationError:
    # Alert not acknowledgable; ignore or notify user
    pass

Try / catch

try:
    await hass.services.async_call('alert', 'turn_off', {'entity_id': eid}, blocking=True)
except HomeAssistantError as err:
    if 'cannot be acknowledged' in str(err):
        _LOGGER.debug('Alert %s not acknowledgable (can_ack false)', eid)
    else:
        raise

Prevention

When it happens

Trigger: Calling the alert.<alert_name>.turn_off (or alert.turn_off targeting the entity) service while the alert's YAML configuration lacks can_ack: true. Also any automation, script, or dashboard button wired to 'acknowledge' that issues turn_off on such an alert.

Common situations: User copied an alert config without the can_ack option (defaults to false), then built an 'Acknowledge' button or automation that calls turn_off. Survives upgrades silently until the button is pressed. Alexa/Google voice assistants may also map 'turn off' to the alert entity.

Related errors


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