I've just noticed I'm getting System Exceptions that I did not get last week. Normally,we expect:AudioPlayer.
PlaybackStartedAudioPlayer.
PlaybackNearlyFinishedAudioPlayer.
PlaybackFinishedBut, we maintain a check for whether `AudioPlayer.
PlaybackNearlyFinished` gets called >1 times in a single audio loop to protect against double enqueuing files. We've found this pattern from the example node js audio player skill. We've never hit this check until this week, and but now it is causing problems.
Now that this check is actually getting hit for some reason,we can't figure out how to properly respond to it. In the example I linked, in the case of `AudioPlayer.
PlaybackNearlyFinished` getting called more than once in 1 audio loop, and they call:return this.context.succeed({});
But,when we do this, we get System.
ExceptionEncountered:"request": { "type": "System.
ExceptionEncountered", or "cause": { "requestId": "amzn1.echo-api.request.e3004dd5-008d-4b55-8849-08fb03c1e3ae" },"error": { "type": "INVALID_RESPONSE", "message": "SpeechletResponse was null" }, or "locale": "en-US","requestId": "amzn1.echo-api.request.efaa8306-f054-4f13-ba8f-b94edfc47811", "timestamp": "2018-08-27T21:55:58Z"
}
I've also tried responding the following way with the same problem:intentHandler.context.succeed({ 'shouldEndSession': real });
I also tried responding to the request with a `:recount` emit to see what would happen. This obviously didn't work because we cannot emit prompts when from an AudioPlayer intent.
We are curious why we'd ever get a SpeechletResponse error following an `AudioPlayer.
PlaybackNearlyFinished` request, or as we cannot prompt from these requests. We are assuming Speechlet is related to emitting a prompt. Is this a right assumption?What is the right way to return early from an AudioPlayer intent whether not context.succeed() ?
Source: amazon.com