Entity display name 'sys.any' is not valid


#1

Hi everyone,

Suddenly while deploying my action I get following error:

[ERR] com.google.apps.framework.request.BadRequestException: Entity display name ‘sys.any’ is not valid, it may contain only the following: A-Z, a-z, 0-9, _ (underscore), -
» (dash). And it should start with a letter.

It worked before the holidays and also alexaSkill gets deployed correctly. I have only one intent with this entity:

{
"name": "SpeechToTextIntent",
"phrases": [
	"write {freeText}",
	"say {freeText}",
	"read {freeText}"
],
"inputs": [
	{
		"name": "freeText",
		"type": {
		"alexa": "AMAZON.SearchQuery",
		"dialogflow": "@sys.any"
		}
	}
]
},

If I download the intent from dialogflow it seems to be the same, as the output from jovo build:
Intent from dialogflow:
image
jovo output:
image

Thank you for your help!


#2

Hey @Simon

Does it work importing/restoring from the zip file?


#3

Hi @AlexSwe
Thanks for responding.

It’s really strange because I thought I didn’t touch this Intent for a long time and it worked until now.

If I try to “Restore from zip” or “Import from zip” and use the zip from “jovo build” I get the same error message:

com.google.apps.framework.request.BadRequestException: Validate WebhookFulfillment failed because of the following reasons: Fulfillment URL (undefined) is not valid
Entity display name ‘sys.any’ is not valid, it may contain only the following: A-Z, a-z, 0-9, _ (underscore), - (dash). And it should start with a letter.

If I use “jovo get” and after that “jovo deploy” it works. But that’s no solution because it just deploys what already is deployed.

The files from “jovo get” have some additional values but all the ones from “jovo build” are the same there.

The File from dialogflow “SpeechToTextIntent.json”:

{
  "id": "7e2b9axxxxxxxxxxfdc0",
  "name": "SpeechToTextIntent",
  "auto": true,
  "contexts": [],
  "responses": [
    {
      "resetContexts": false,
      "action": "",
      "affectedContexts": [],
      "parameters": [
        {
          "name": "freeText",
          "required": false,
          "dataType": "@sys.any",
          "value": "$freeText",
          "defaultValue": "",
          "isList": false,
          "prompts": [],
          "promptMessages": [],
          "noMatchPromptMessages": [],
          "noInputPromptMessages": [],
          "outputDialogContexts": []
        }
      ],
      "messages": [],
      "speech": []
    }
  ],
  "priority": 500000,
  "webhookUsed": true,
  "webhookForSlotFilling": false,
  "fallbackIntent": false,
  "events": [],
  "conditionalResponses": [],
  "condition": "",
  "conditionalFollowupEvents": []
}

The File from jovo /platforms/googleAction/dialogflow/intents “SpeechToTextIntent.json”:

{
  "name": "SpeechToTextIntent",
  "auto": true,
  "webhookUsed": true,
  "responses": [
    {
	  "parameters": [
	    {
	      "isList": false,
	      "name": "freeText",
	      "value": "$freeText",
	      "dataType": "@sys.any"
	    }
	  ]
	}
  ]
}

And this is a part from the “SpeechToTextIntent_usersays_de.json”:

[
  {
    "data": [
      {
        "text": "schreib ",
        "userDefined": false
      },
      {
        "text": "freeText",
        "meta": "@sys.any",
        "alias": "freeText",
        "userDefined": true
      }
    ],
    "isTemplate": false,
    "count": 0,
    "lang": "de",
    "updated": 0
  },
...
]

the only difference here is the order of values and that “lang” and “updated” are missing in the jovo generated version.


#4

Hi @AlexSwe

It works now. The reason: Somehow “jovo build” generated at some point three files for @sys.any as if it was a custom entity: “sys.any.json, sys.any_entries_en.json und sys.any_entries_de.json”
These filenames were the reason for the error message. It took me some time to find them.
After I deleted them and run the build command again, they didn’t appear again.
So, problem solved but I don’t really know, how it could have happened in the first place.


#5

Glad to see it’s working now. Thanks for the update


#6

@AlexSwe, it seems like a bug in “jovo build” or do I do something wrong?
If I use “jovo build” it always generates the three files for @sys.any:
sys.any.json
sys.any_entries_en.json
sys.any_entries_de.json
For the Alexa version “AMAZON.SearchQuery” this doesn’t happen.
Here is an example of, how my languageModel looks like:

"intents": [
	{
		"name": "SpeechToTextIntent",
		"phrases": [
			"write {freeText}",
			"say {freeText}",
			"read {freeText}"
		],
		"inputs": [
			{
				"name": "freeText",
				"type": {
					"alexa": "AMAZON.SearchQuery",
					"dialogflow": "@sys.any"
				}
			}
		]
	}
]

I tried with jovo cli version 3.2.0


#7

Hey @Simon

yes, that looks weird. CC @rubenaeg


#8

Weird, I’ll have a look @Simon .


#9

Hm, seems like this is a bigger problem, so I added it to the list of things to fix for Jovo CLI v4. You can track the progress here.


#10

FYI I’m having the exact same problem, but with @sys.date.

Seems jovo build is generating these files for all the system entities mentioned.

However, it seems Dialogflow only complains about a few of them. I deleted all the entity files prefixed with sys except sys.cardinal and the import worked.


#11

Will be fixed soon!