Jovo deploy not working properly since v3


#1

Since updating to v3 I have noticed few things.

First is even tough askProfile is mentioned in the project.js, while running jovo build --deploy it does not consider it. Need to supply it using --ask-profile argument.

Second is I have provided a askProfile which is aws initialised as well, but still the code is not getting uploaded to lambda.

Third is I am getting some error for google when deploying.

Here is my profile.js file :

module.exports = {
    alexaSkill: {
        nlu: 'alexa',
        skillId: '**********',
        askProfile: '**********',
        manifest: {
            publishingInformation: {
                locales: {
                    "en-IN": {
                        name: "**********"
                    }
                }
            }
        }
    },
    googleAction: {
        nlu: 'dialogflow',
        dialogflow: {
            projectId: '**********',
            keyFile: './keys/**********.json'
        },
    },
    languageModel: {
        'en-IN': {
            invocation: '**********',
        }
    },
    endpoint: '${JOVO_WEBHOOK_URL}',

    stages: {
        dev: {
            alexaSkill: {
                nlu: 'alexa',
                skillId: '**********',
                askProfile: 'askprofile1',
                manifest: {
                    apis: {
                        custom: {
                            interfaces: [
                                {
                                    type: 'ALEXA_PRESENTATION_APL',
                                },
                            ],
                        },
                    },
                    publishingInformation: {
                        locales: {
                            "en-IN": {
                                name: "**********"
                            }
                        }
                    }
                },
            },
            endpoint: 'arn:aws:lambda:us-east-**********',
            googleAction: {
                nlu: 'dialogflow',
                dialogflow: {
                    endpoint: '**********',
                    projectId: '**********',
                    keyFile: './keys/**********.json'
                },
            },
            languageModel: {
                'en-IN': {
                    invocation: '**********',
                }
            },
        }
    },
};

When I run :

jovo build --deploy --stage dev --ask-profile askprofile1

This is the output of it :


jovo build:  Create and update platform specific files in /platforms folder
   >> Learn more: https://jovo.tech/docs/cli/build

  ✔ Initializing build process...
    ✔ Collecting platform configuration from project.js.
      Platforms: alexaSkill, googleAction
    ✔ Collecting Jovo language model files from ./models folder.
      Locales: en-IN
    ✔ Validating model files.
      ✔ en-IN
  ✔ Updating Alexa Skill project files (stage: dev)
   Path: ./platforms/alexaSkill
    ✔ Updating Skill Manifest
      Path: ./platforms/alexaSkill/skill.json
    ✔ Updating Alexa Interaction Model
      Path: ./platforms/alexaSkill/models
      ✔ en-IN
  ✔ Updating Google Action project files (stage: dev)
   Path: ./platforms/googleAction
    ✔ Updating Dialogflow Agent
      Path: ./platforms/googleAction/dialogflow
      ✔ agent.json
      ✔ package.json
    ✔ Updating Language Model
      Path: ./platforms/googleAction/dialogflow/intents, ./platforms/googleAction/dialogflow/entities
      ✔ en-IN
  ❯ Deploying project...
    ✔ Deploying Alexa Skill (stage: dev)
      ↓ Updating Alexa Skill project for ASK profile Envision-new [skipped]
        → Endpoint: ********
      ✔ Deploying Interaction Model, waiting for build
        ✔ en-IN
    ❯ Deploying Google Action (stage: dev) ********
      ↓ Creating file /googleAction/dialogflow_agent.zip [skipped]
        → Fulfillment Endpoint: ********
      ✖ Uploading and restoring agent for project ********
        → com.google.apps.framework.request.BadRequestException: Validate entity failed because of the following reasons: '' is not a valid entity type ID. Must be a UUID.
        Training started
 ›   Error: There was a problem:
 ›   Error: com.google.apps.framework.request.BadRequestException: Validate entity failed because of the following reasons: '' is not a valid entity type ID. Must be a UUID.

The first issue is not that important, but second and third seems like some kind of bug to me or am I doing something wrong?


#2

I can confirm that issue, same for me after updating to V3


#3

Hey @priyam_jain,

currently working on a fix! Will update you here once I know more!


#4

hi, any news on this? Now I cannot even deploy anymore with explicit --ask-profile.
I get Updating Alexa Skill project for ASK profile XYZ [skipped]

This should be solved asap, I cannot deploy any skill anymore now.
Thanks Jan


#5

@developer.bs manually deploy using

jovo deploy --target zip

and upload the bundle.zip created to lambda, language models are uploaded by the script and for google manually upload the agent.zip file as well for the time being.


#6

Thanks. So this issue is jovo V3 related? Not any issues in my code? Would be great to confirm that as other ways I have to fix my code asap.


#7

I can’t say anything without looking at your code but since I am also facing this issue, and only started facing it after updating to v3, hence there is a high chance it is related to that.

Another solution could be to delete v3 and install jovo 2.x


#8

I did not upgrade anything (still in 2.x) and just tried to do a new deploy and I got the same error.


#9

The update was already published, sorry for not updating you here, been a crazy few weeks here. Please update with npm i jovo-cli -g and try again, let me know if the issue persists.


#10

unfortunately not, still the issue. I get messages [skipped]. I doubt its in my code as I did not change anything.
Here is my CLI:

jovo deploy --stage dev -p alexaSkill
  ✔ Deploying Alexa Skill (stage: dev)
    ↓ Updating Alexa Skill project for ASK profile <MY PROFILE> [skipped]
      → Endpoint: arn:aws:lambda:eu-west-1:<MY ENDPOINT>
    ✔ Deploying Interaction Model, waiting for build
      ✔ de-DE
      ✔ en-AU
      ✔ en-CA
      ✔ en-GB
      ✔ en-IN
 Deployment completed.

Here I don’t get the lambda bundle message upload confirmation as I usually got. If I try -t lambda I get

jovo deploy --stage dev -p alexaSkill -t lambda
  ✔ Bundle Project(stage: dev)
    ✔ Copy source code to "./bundle"
    ✔ Run "npm install --production"
    ↓ Zip "./bundle" folder [skipped]
      → Zip path: <MY PATH>/bundle.zip
  ✔ Deploying Alexa Skill (stage: dev)
    ↓ Uploading to AWS Lambda [skipped]
      → Info: Deployed to lambda function: arn:aws:lambda:eu-west-1:<MY ENDPOINT>

Deployment completed.

#11

Hm, that obviously shouldn’t happen. I’m currently investigating this issue and will work on a fix asap!


#12

Out of curiosity, can you confirm that the functionality is skipped according to the logs? I just deployed a test skill and got the message [skipped], but the skill was deployed nonetheless…


#13

Just tested:

  • deleted all intents and languages in developer console
  • modified and deleted distribution info in developer console
  • deleted code on lambda
  • did a new deploy with ‘jovo deploy --stage dev -p alexaSkill’

I got the skipped messages again and the following results:

  • all models for all languages have been deployed and build correctly
  • all distribution info is correct too
  • code was deployed to lambda

then i did explicit lambda deploy with ‘jovo deploy --stage dev -p alexaSkill -t lambda’

  • result: the code was deployed to lambda

#14

Sorry, I was wrong in one point (corrected it above):

The code DID upload to lambda!
So it seems to be only a display problem in the console?


#15

Seems like it. We’ll discuss this interally, I’ll keep you posted!


#16

Hi @rubenaeg appreaciate your support.
Even though the code gets uploaded to lambda but it gives an error for googleAction.
When I run :

jovo build --deploy --stage dev

I get this error when Uploading and restoring agent for project :

Error: com.google.apps.framework.request.BadRequestException: Validate entity failed because of the following reasons: '' is not a valid entity type ID. Must be a UUID.

I don’t get this error when stage is not specified.


#17

I also see an issue with --stage: my default config file is config.js
But when I explicitly deploy with --stage prod the config.js is beeing used again, not the expected config.prod.js


#18

Hi @developer.bs, for the Jovo app to use the right config.js file, you need to specify the stage in the environment variables. Take a look here: https://www.jovo.tech/docs/staging#app-configuration-stages


#19

I did that and did not change it.

  • lambda STAGE environment variable is set to prod

  • config.prod.js exists with correct DB data

  • jovo deploy --stage prod -p alexaSkill -t lambda
    -> PROD skill is using dev database :frowning:

  • I changed the dev database login data in the config.js (my default) to nonsense login data

  • jovo deploy --stage prod -p alexaSkill -t lambda

  • PROD Skill returns Launch Error
    -> which means PROD skill is using the wrong config file

I am stock here :frowning:


#20

What happens if you try it locally?