ask-cli icon indicating copy to clipboard operation
ask-cli copied to clipboard

`ask deploy` fails when Alexa Conversations is enabled

Open andijakl opened this issue 3 years ago • 1 comments

I'm submitting a...


[ ] Regression (a behavior that used to work and stopped working in a new release)
[x] Bug report  
[ ] Performance issue
[ ] Feature request
[ ] Documentation issue or request
[ ] Other... Please describe:

Expected Behavior

  1. Activating Alexa Conversations for an existing skill through the alexa developer console. Provided audio responses for compulsory responses like "out_of_domain". Their JSON definitions are also visible in the "multimodal response editor" tool of the alexa developer console. The model builds & trains successfully in Alexa Developer Console.
  2. Update local skill manifest and interaction model through ASK CLI / Visual Studio Code integration. Added Alexa Conversations configuration should appear in the local definition files.
  3. Deploy changed lambda code using ask deploy (in my case through the CloudFormation version to a custom AWS-hosted Lambda Skill)
  4. Expected: successfully updated skill, still working skill

Current Behavior

  1. Local updates of manifest and interaction model succeed. However, additional Alexa Conversations items do not appear in local files.
  2. When deploying using ask deploy, the step "Deploy Skill Metadata" fails. The uploaded manifest and interaction model files do not contain required Alexa Conversations configuration items. No further skill deployment or update is possible using CLI tools.

CLI Snapshot

ask-deploy-alexa-conversations

Steps to Reproduce (for bugs)

Code is not the issue here, steps to reproduce described in expected behavior above. Seems like ASK CLI does not properly download and handle Alexa Conversations data. Once Alexa Conversations is enabled, ask deploy does not seem to be able to provide a complete model to the alexa developer console anymore.

Also, ask deploy does not seem to provide a way to only update the lambda code as a workaround and not touch the online version of the interaction model, so deployment of the skill is no longer possible.

Possible Solution

Your Environment and Context

  • ask-cli version: 2.14.0
  • Operating System and version: Windows 10 Enterprise 1909, deploying using PowerShell 7 latest version
  • Node.js version used for development: 12.18.3
  • NPM version used for development: 6.14.7

andijakl avatar Aug 11 '20 09:08 andijakl

I'm still not really succeeding in deploying an Alexa skill with Conversations & a non-Alexa-hosted Lambda through the ASK SDK.

The APL documents of Alexa Conversations that are reported as missing in the ASK CLI output are defined in the Alexa Developer Console in the browser. In there, they can also be edited through the separate "Multimodal Responses" editor.

However, the ASK CLI (and especially the ASK tools in Visual Studio Code) do not seem to provide a way to download those APL documents and to properly reference them in the updated skill manifest.

As such, I'm assuming that ASK CLI uploads the skill without the definition of the multimodal responses, which then fails to build. I have not found a way to circumvent that.

Also, the normal Alexa Interaction Model has a way to download the defining JSON model. The Alexa Conversations model does not seem to offer this - only APL documents can be downloaded separately as individual JSON files. As such, I also already had the case in which the APL documents got lost during an ASK CLI tool update from the local code to the Alexa Developer Console.

The whole issue is further complicated if the skill is multi-language and Alexa Conversations (and the respective required APL documents, custom slots with properties, etc) can only be enabled for en-US, but not for other languages.

andijakl avatar Aug 18 '20 12:08 andijakl

please refer to this documentation for setting up the ask cli and feel free to re-open if you still have issues deploying your AC skill. thanks

doiron avatar Jan 20 '23 20:01 doiron