question

M. Mercer avatar image
M. Mercer asked

Service Simulator runs, but Echo will not run IntentRequest.

My skill seems to be working in the Service Simulator, but is only partially working on the Echo itself. 1. When I use a phrase to invoke the LaunchRequest ('Alexa tell MySkill') - it works on both Echo and in the Service Simulator 2. When I use a phrase that matches my Utterances ('Alexa tell MySkill hello') - the Service Simulator requests the correct Intent and receives the appropriate response. However, the Echo always says 'Sorry I didn't understand the question I heard'. 3. Very oddly, if I use a random phrase, not in my Utterances ('Alexa, tell MySkill blah') = the Service Simulator does exactly the same as step 2. It's as if the Utterance Schema is being ignored. I have a very simple Schema, which is as follows. [code] INTENT SCHEMA { "intents": [ { "intent": "HelloWorldIntent", "slots": [ { "name": "Time", "type": "AMAZON.TIME" }, { "name": "Date", "type": "AMAZON.DATE" } ] } ] } [/code] My Utterances File has been stripped down to a single line for testing (not that it is making any difference!) HelloWorldIntent hello I am using IBM's BlueMix to host the server and Node.js (using Node-Red). As such my development endpoint is a subdomain of a domain that has a wildcard certificate from a certificate authority. All the boxes in the development environment are ticked green. Here's what I'm seeing when I run 'Alexa tell MySkill hello' in the Service Simulator. I get the same if I change the 'hello' to something that is not in my utterance file' Server Request [code] { "session": { "sessionId": "SessionId.20377591-1401-44ea-b271-1330212adca9", "application": { "applicationId": "amzn1.echo-sdk-ams.app.8e68cf40-b244-4ddb-a63c-96d976555c5e" }, "user": { "userId": "amzn1.echo-sdk-account.AGMXOPZO3LUJPV3F3D5OSYKGNEPWFXR5NJJNR6TMTNDXFJTE2T4OA" }, "new": true }, "request": { "type": "IntentRequest", "requestId": "EdwRequestId.df79e9b0-52db-4362-8455-5088325130a7", "timestamp": "2016-02-22T00:30:25Z", "intent": { "name": "HelloWorldIntent", "slots": { "Time": { "name": "Time" }, "Date": { "name": "Date" } } } } } [/code] Server Response [code] { "version": "1.0", "response": { "outputSpeech": { "type": "PlainText", "text": "This is a response to Intent Request" }, "card": null, "reprompt": null, "shouldEndSession": true }, "sessionAttributes": null } [/code]
alexa skills kitsubmission testing certification
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Steve A avatar image
Steve A answered
I bet the problem is your limited number of sample utterances for your HelloWorld intent. It you increase the number, varying the words and lengths, it will work with the Echo, too. For your utterance samples, try: HelloWorld hello HelloWorld blueberry pie HelloWorld that's too far HelloWorld don't count your chickens HelloWorld the library is now closed etc.
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

M. Mercer avatar image
M. Mercer answered
No, it makes no difference. In fact, I'm now seeing more problems - which makes me wonder if the Simulator is not working correctly. Now nothing works via the Echo (whereas last night the LaunchRequest was working fine). And now when I enter anything into the Service Simulator (even if it is not in my utterances) it runs the IntentRequest (HelloWorldIntent) and gets correct response (but still fails to work through the echo).
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

M. Mercer avatar image
M. Mercer answered
After testing I'm getting the following:- If I have a single Intent listed then the launchRequest never gets run. The system defaults to always running the Intent that is listed. This seems like a bug. For example, under this scenario 'Alexa, ask myskill' returns the same as 'Alexa, ask myskill (utterance) ' If I have 2 or more intents and I say 'Alexa, ask myskill' then the LaunchRequest does get triggered. However, this does not explain the problem that I'm having that LaunchRequests work on the Echo, but RequestIntents do not.
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Steve A avatar image
Steve A answered
Here's a couple thoughts: First, is the invocation name "MySkill" ...one word? If so, then the echo will likely (often) parse it as two words "my skill" and the skill won't be run. The service simulator won't have that problem. Generally, have you checked the history in the Alexa app to see what Alexa is hearing? In particular, that it is hearing what you assume it's hearing, and that it is the same thing as you are typing in the Simulator? It might be helpful to see your sample utterances. I must be missing something but it sounds like you have a sample that looks like: HelloWorld {hello|Time} If so, well, I'm not sure what it's going to make of that if it's forced to map "hello" into either a DATE or TIME slot. But I might not be understanding what's going on with your sample utterances.
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.