Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Undefined parameter in Google Action

I have a DialogFlow agent I am trying to test on Google Assistant. I've created a relatively simple Intent called "Set name" with the following Training phrases:

  • My name is Ryan.
  • Bill
  • I'm Steve
  • The name's Bond. James Bond.

It has two parameters:

  • Required: given-name with the Entity @sys.given-name and the value stored as $given-name
  • last-name with the Entity @sys.last-name and the value $last-name

I'm able to test in just fine in the DialogFlow test console. But when I try to "See how it works in Google Assistant." I get the following error:

Request contains an invalid argument. The query pattern 'The name's Bond. $SchemaOrg_Person:given-name $SchemaOrg_Person:last-name.' contains an undefined parameter 'last-name.'

If I delete the "James Bond" training phrase, it works okay. But I would like to include that. What am I doing wrong?

Here is a screenshot of the intent that is causing the problem:

troublesome intent

Here is the link I'm clicking to try in Google Assistant:

Open in Google Assistant

And finally, here is the error message that appears in the bottom-right corner of the screen when I click that link:

Error message pop-up

like image 749
Ryan Avatar asked Mar 08 '18 11:03

Ryan


1 Answers

I suddenly got a few of these error messages when both clicking the "See how it works in Google Assistant" link and submitting the app for production.

It seems like characters like apostrophes and hyphens in the training phrases creates trouble and can give that error message.

In addition it complained about a variant of the training phrases that I could not find anywhere no matter how much I looked at all languages, all pages of the phrases and all intents. I finally found the phrase in question by exporting the project and searching through the JSON files. Then I could delete the phrase locally, delete the intent in Dialogflow and do an import back to Dialogflow. (From my understanding it had messed up a follow-up intent which it also in the JSON (nowhere in the UI) had attached parts of some training phrases.)

like image 78
Roy Solberg Avatar answered Sep 18 '22 19:09

Roy Solberg