question

FaisalV avatar image
FaisalV asked

AudioPlayer skill rejected (certification) - not sure why

I submitted my audio player skill the other day and within the certification feedback received the following reply:

"Future versions of the Alexa Skills Kit may add new properties to the JSON request and response formats, while maintaining backward compatibility for the existing properties. When we invoke the skill with additional parameters, the skill is rejecting it when we expect this to be accepted. Your code must be resilient to these types of changes. For example, your code for de-serializing a JSON request must not break when it encounters a new, unknown property. Please see the following documentation for more information: https://developer.amazon.com/appsandservices/solutions/alexa/alexa-skills-kit/docs/alexa-skills-kit-interface-reference"

Now I'm not too sure what this is about, however I looked at the cloud watch logs of my lambda function and can see the invocation errors that I'm guessing the certification team faced (I have not used the skill since sending it for request). The error is as follows: "2016-09-11T08:50:07.969Z bdab8ff9-77fc-11e6-9de9-7ba7ed11ed60 TypeError: Cannot read property 'System' of undefined

at exports.handler (/var/task/index.js:20:22)"

Now this error only seems to happen when you try to use the service simulator or test from the lambdas test function, at least this is what I'm lead to believe from the following forum post:

https://forums.developer.amazon.com/questions/35586/error-with-audio-player-sample-project.html. A snippet from one of the replies on the post is below:

"The Service Simulator in the Developer Portal does not provide the System object to the skill backend when supplying a test utterance and so should not be used with Audio Skills. Instead, please test with an Alexa-enabled device."

When certifying my audio player skill, are the team using the service simulator? As per Amazons own recommendation (as seen above) it should only be tested on Alexa-enabled devices.

Which then leads me onto my next question. Are Audio Player skills currently being certified? Has anyone managed to get theirs on the skill store?

alexa skills kitalexacertificationaudio
10 |5000

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

1 Answer

Mark E. Fogle avatar image
Mark E. Fogle answered

Hi,

The issue with the Audio Player Sample Project is the following code in index.js :

if (event.context.System.device.supportedInterfaces.AudioPlayer===undefined) {
   alexa.emit(':tell', 'Sorry, this skill is not supported on this device');
}

If you replace the if statement with something like

if (typeof event.context === 'undefined' || event.context.System.device.supportedInterfaces.AudioPlayer === undefined) {
                

then the issue will go away when the "JSON properties" test is run. You can verify this by attempting to invoke the Skill from the Service Simulator; it won't run successfully, but you'll see the "Sorry" prompt in the simulator rather than an error in your Cloud Watch Logs.

And yes, it is possible to get an Audio Player skill certified; my skill ("Tech Caster" - http://alexa.amazon.com/spa/index.html#skills/dp/B01L7HPB4O) was certified yesterday on the second attempt.

Regards,

Mark

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.

Thanks @Mark E. Fogle,

I did try something similar yesterday checking to see if context was undefined. However I kept getting a dynamo DB issue. This time I deleted the database table and started 'fresh' and it worked a treat.

Have tested it on a few devices including my own AVS app and all seems to be good! Thanks for your help, hopefully it will pass submission this time.

Have also enabled your skill and look forward to using it :)

1 Like 1 ·