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
- Set can_ack: true in the alert's YAML configuration and reload the alert integration (or restart HA).
- If acknowledging should stay disabled, remove/fix the automation or dashboard action that calls turn_off on this alert.
- 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
- Enable can_ack: true in alert YAML whenever you build acknowledge buttons or automations.
- Prefer the alert's own 'Acknowledge' UI action over generic turn_off calls in dashboards.
- Document per-alert whether acknowledging is allowed so automation authors do not assume it.
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
- Failed to set temperature to {temperature}.
- Failed to set value.
- Unsupported fan mode {fan_mode}
- Unsupported HVAC mode {hvac_mode}
- Unsupported preset mode {preset_mode}
AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14).
Data as JSON: /api/errors/d250ef7cf975a195.
Report an issue: GitHub.