home-assistant/core · error · ServiceValidationError
invalid_info_skill_value
invalid_info_skill_value
Error message
Invalid info skill {info_skill} specified What it means
ServiceValidationError with translation key alexa_devices/invalid_info_skill_value, raised in _async_execute_action when the ATTR_INFO_SKILL value of the service call does not map through INFO_SKILLS_MAPPING to a value in ALEXA_INFO_SKILLS — the set of supported Alexa information skills (weather, traffic, etc.).
Source
Thrown at homeassistant/components/alexa_devices/services.py:104
if value not in SOUNDS_LIST:
raise ServiceValidationError(
translation_domain=DOMAIN,
translation_key="invalid_sound_value",
translation_placeholders={"sound": value},
)
async with alexa_api_call():
await coordinator.api.call_alexa_sound(
coordinator.data[device.serial_number], value
)
elif attribute == ATTR_TEXT_COMMAND:
async with alexa_api_call():
await coordinator.api.call_alexa_text_command(
coordinator.data[device.serial_number], value
)
elif attribute == ATTR_INFO_SKILL:
info_skill = INFO_SKILLS_MAPPING.get(value)
if info_skill not in ALEXA_INFO_SKILLS:
raise ServiceValidationError(
translation_domain=DOMAIN,
translation_key="invalid_info_skill_value",
translation_placeholders={"info_skill": value},
)
async with alexa_api_call():
await coordinator.api.call_alexa_info_skill(
coordinator.data[device.serial_number], info_skill
)
async def async_send_sound_notification(call: ServiceCall) -> None:
"""Send a sound notification to a AmazonDevice."""
await _async_execute_action(call, ATTR_SOUND)
async def async_send_text_command(call: ServiceCall) -> None:
"""Send a custom command to a AmazonDevice."""
await _async_execute_action(call, ATTR_TEXT_COMMAND)View on GitHub (pinned to 58a3fdb3ea)
Solutions
- Check INFO_SKILLS_MAPPING in the integration source for accepted keys and use one exactly
- Use the UI service selector dropdown, which enumerates valid info skills
- Fix typos and casing in the automation/script YAML
- After a Home Assistant upgrade, re-check the mapping for renamed skills
Example fix
// before
action:
domain: alexa_devices
data:
device_id: "..."
info_skill: "weather_report_typo"
// after
action:
domain: alexa_devices
data:
device_id: "..."
info_skill: "weather" # a key present in INFO_SKILLS_MAPPING Defensive patterns
Strategy: validation
Validate before calling
from homeassistant.components.alexa_devices.const import INFO_SKILLS_MAPPING, ALEXA_INFO_SKILLS
if INFO_SKILLS_MAPPING.get(info_skill) not in ALEXA_INFO_SKILLS:
_LOGGER.warning("Unsupported info skill %r; valid: %s", info_skill, sorted(INFO_SKILLS_MAPPING))
return Type guard
def is_valid_info_skill(value: str) -> bool:
"""True when value maps to a supported Alexa info skill."""
return INFO_SKILLS_MAPPING.get(value) in ALEXA_INFO_SKILLS Try / catch
try:
await hass.services.async_call(DOMAIN, SERVICE, service_data, blocking=True)
except ServiceValidationError as err:
if err.translation_key == "invalid_info_skill_value":
_LOGGER.warning("Invalid info skill; use a key from INFO_SKILLS_MAPPING") Prevention
- Use the UI selector enumerating valid info skills
- Validate against INFO_SKILLS_MAPPING before calling from automations
- Re-verify the mapping after HA upgrades
When it happens
Trigger: Calling the info-skill service with a skill name that INFO_SKILLS_MAPPING.get(value) returns None (or a value not in ALEXA_INFO_SKILLS), e.g. 'my_custom_skill' or a misspelled entry like 'wheather'.
Common situations: Users passing arbitrary Alexa skill names instead of the fixed info-skill vocabulary, YAML written against an older mapping, or typos/casing mismatches.
Related errors
AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14).
Data as JSON: /api/errors/89732ba894229f2f.
Report an issue: GitHub.