{"record":{"id":"acfb82602616adf3","repo":"home-assistant/core","slug":"received-unknown-request-req-type","errorCode":null,"errorMessage":"Received unknown request {req_type}","messagePattern":"Received unknown request (.+?)","errorType":"exception","errorClass":"UnknownRequest","httpStatus":null,"severity":"error","filePath":"homeassistant/components/alexa/intent.py","lineNumber":133,"sourceCode":"\n\nasync def async_handle_message(\n    hass: HomeAssistant, message: dict[str, Any]\n) -> dict[str, Any]:\n    \"\"\"Handle an Alexa intent.\n\n    Raises:\n     - UnknownRequest\n     - intent.UnknownIntent\n     - intent.InvalidSlotInfo\n     - intent.IntentError\n\n    \"\"\"\n    req = message[\"request\"]\n    req_type = req[\"type\"]\n\n    if not (handler := HANDLERS.get(req_type)):\n        raise UnknownRequest(f\"Received unknown request {req_type}\")\n\n    return await handler(hass, message)\n\n\n@HANDLERS.register(\"SessionEndedRequest\")\n@HANDLERS.register(\"IntentRequest\")\n@HANDLERS.register(\"LaunchRequest\")\nasync def async_handle_intent(\n    hass: HomeAssistant, message: dict[str, Any]\n) -> dict[str, Any]:\n    \"\"\"Handle an intent request.\n\n    Raises:\n     - intent.UnknownIntent\n     - intent.InvalidSlotInfo\n     - intent.IntentError\n\n    \"\"\"","sourceCodeStart":115,"sourceCodeEnd":151,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/alexa/intent.py#L115-L151","documentation":"Raised by the Alexa intent endpoint in intent.py: the incoming request message's request.type is looked up in the HANDLERS registry, and an unknown type raises UnknownRequest. Only registered types (SessionEndedRequest, IntentRequest, LaunchRequest) are accepted.","triggerScenarios":"Alexa (or any client) posts a message with a request type Home Assistant has no handler for, e.g. new Alexa request types like CanFulfillIntentRequest or AudioPlayer events.","commonSituations":"Amazon introduces new Skill request types; a custom skill posts malformed/unsupported payloads; version drift between the Alexa cloud protocol and the installed Home Assistant release.","solutions":["Update Home Assistant to the latest version so newly supported request types are handled","Inspect the posted message payload and confirm request.type matches a registered handler","If building against this API, only send IntentRequest, LaunchRequest, or SessionEndedRequest"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"KNOWN_REQUEST_TYPES = {'IntentRequest', 'LaunchRequest', 'SessionEndedRequest'}\nif message['request']['type'] not in KNOWN_REQUEST_TYPES:\n    return _response('canFulfill', {'canFulfill': 'NO'})","typeGuard":"def is_known_request_type(message: dict) -> bool:\n    return message.get('request', {}).get('type') in {'IntentRequest', 'LaunchRequest', 'SessionEndedRequest'}","tryCatchPattern":"Wrap async_handle_message in try/except UnknownRequest and return a graceful Alexa error response instead of a 500.","preventionTips":["Validate request.type against the handler registry before dispatch","Update Home Assistant when Alexa adds request types"],"tags":["alexa","intent","protocol","unknown-request"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}