question

AlexaShared avatar image
AlexaShared asked

Alexa custom skill works in service simulator but randomly throws out errors on device

SETUP: I have a custom skill created for Alexa using alexa-sdk and aws-sdk as part of my node_modules package I deploy to Lambda, together with one index.js file. Everything is javascript/node.js. Skill is created in developer.amazon as a (US) skill.

INTERACTION: The skill is invoked with: open product catalog. Skill opens successfully. The skills has different states (handler) it can be in, which determine which intents are handled:

alexa.registerHandlers(newSessionHandler, startGameHandlers, askQuestionHandlers);

states are switched as so: this.handler.state = states.ASKMODE;

and every state handles certain intents, for example:

'TellMeMoreAboutIntent': function () { helper.moreAbout(this); },

The way the skill works is the user starts in STARMODE, opens the catalog and goes to ASKMODE and from there can browse different products in the catalog. Every product has a description and sometime sub-products (nodes - children). If Alexa doesn't understand the user she should go to DidNotUnderStandIntent. My interaction model is set up in such a way to prefer this intent over others.

ERROR: All of my tests in the amazon developer console - service simulator are returned with the appropriate response. However when moving over to my physical Amazon Echo device the skill will only work if everything is said/understood by Alexa PERFECTLY. But in certain scenarios, for example if the user has just moved to ASKMODE and then uses the utterance again, then Alexa on the console will use the DidNotUnderStandIntent but on the Echo the device simply says:

"There was a problem communicating with the requested application" and exits. There are no logs on the Cloud following this interaction so it's impossible to debug.

Furthermore what I noticed is that when I went back to my interaction model my sample utterances and my Intent schema had been moved around ON IT'S OWN, following this. In my sample utterances I have resorted to having many DidNotUnderStandIntent, since I noticed when Alexa doesn't understand a user she will try to "infer" what he meant and go to another Intent, but what I want is to simply handle is with a DidNotUnderStandIntent and re-prompt the user.

alexa skills kitlambdaintentsamazon developer portalnode_js
10 |5000

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

Brian@Amazon avatar image
Brian@Amazon answered

Hmm, can you provide a skillid so we can test?

1 comment
10 |5000

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

AlexaShared avatar image AlexaShared commented ·

@Brian@Amazon

Thanks for the response. Here is the link to the skill:

amzn1.ask.skill.c8fde66a-7222-484b-854a-03aee2a43540

In order to reproduce the error:

-open skill

-say: browse catalogue

When Alexa tells you welcome to the catalogue what would you like to know more about

-say it again: browse catalogue

If you are unsure what to say, say help.

0 Likes 0 ·
AlexaShared avatar image
AlexaShared answered

Hi is there any update on this? I can provide more information if needed: @Brian@Amazon @Jamie@Amazon @NickG@Amazon

1 comment
10 |5000

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

Brian@Amazon avatar image Brian@Amazon ♦ commented ·

Taking a look. The service simulator only validates the text fields, so my guess is you have another field which isn't formatted properly.

If you are getting intents back you aren't expecting, you may need to modify either your voice model or you back end code to account for this.

0 Likes 0 ·