Alexa Skill not recognized when tested on Echo

alienboy picture alienboy · Aug 21, 2016 · Viewed 13.6k times · Source

I was doing one of the tutorials (HelloWorld) to make a skill for the Echo and I followed the directions. When I tested the skill using the Service Simulator, I typed in

Alexa, tell Greeter to say hello

and that returned the following JSON response:

{
  "version": "1.0",
  "response": {
    "outputSpeech": {
      "type": "PlainText",
      "text": "Hello World!"
},
"card": {
  "content": "Hello World!",
  "title": "Greeter",
  "type": "Simple"
},
"shouldEndSession": true
  },
  "sessionAttributes": {}
}

I think that is the correct output. However, when I tried testing the skill on my Echo, Alexa replies "Sorry, I didn't your question." I went on the history and Alexa interpreted my command as "alexa tell greeter to say hello." It seems that Alexa is not recognizing the skill?

I am using Amazon Lambda to execute the code, so I checked the logs and the code was not executed when I spoke the command to above.

I replaced the app_id in the javascript file to the one that corresponds to my skill. I have also put the amazon skills kit as a trigger.

I also tried the other tutorials (ChemistryFlashCards and HistoryBuff), and Alexa replies "I'm not sure what you meant by that."

Not sure what is happening! Any guidance is appreciated!!

Answer

Barry picture Barry · Nov 28, 2016

For your Echo / Dot / Tap device to correctly invoke your custom skill, the Language of your Interaction Model needs to match the region your lambda resource is deployed in. I had this issue, as I deployed lambda in EU-West1 (Ireland) but the default alnguage for the Interaction model is English (US). In the interaction model I added a new language of English (UK) and copied over my intents and utterances, then deleted the English US language, and my Echo Dot now correctly invoked my custom skill intents