Troubleshooting
This page documents common validation errors, their root causes, and corrected examples. It also provides a normative debugging checklist.
Common Validation Errors
Missing Required Root Property
Error message:
must have required property 'workflows'
must have required property 'name'Root cause: The root object is missing one or both required properties: name or workflows.
{
"workflows": [
{
"intents": ["greeting"],
"actions": [
{
"send": {
"message": { "text": "Hello!" }
}
}
]
}
]
}Missing: name
{
"name": "Greeting Bot",
"workflows": [
{
"intents": ["greeting"],
"actions": [
{
"send": {
"message": { "text": "Hello!" }
}
}
]
}
]
}Missing Required Workflow Properties
Error message:
Root cause: Every workflow object MUST contain both intents and actions.
Missing: intents
Empty Message Object
Error message:
Root cause: The message object does not contain any of the required content fields (text, media, carousel, list, buttons, quickReplies, richCard, or title).
Carousel With Fewer Than 2 Cards
Error message:
Root cause: The carousel array MUST contain a minimum of 2 items. A single-card carousel is invalid.
Only 1 card — minimum is 2.
Carousel With More Than 10 Cards
Error message:
Root cause: The carousel array MUST NOT exceed 10 items.
11 cards — maximum is 10.
Trimmed to 10 cards.
Button Missing Required title or payload
Error message:
Root cause: Buttons of type weburl, postback, and call MUST include both title and payload.
Missing title for weburl button.
Quick Reply Missing Required title
Error message:
Root cause: Quick replies of type text and postback MUST include title.
Missing title for text quick reply.
waitFor Missing Required data or content
Error message:
Root cause: Both data and content are required in a waitFor object.
Missing data and content.
Invalid content Attribute Name in waitFor
Error message:
Root cause: The content attribute name MUST start with a letter and contain only letters, digits, and underscores. Hyphens, dots, and leading digits are not permitted.
user-email contains a hyphen — not permitted.
Invalid attributePath in assignAttributes
Error message:
Root cause: attributePath MUST match ^[a-zA-Z][a-zA-Z0-9_.]*$. It may use dot notation for nested paths but MUST start with a letter.
2ndAddress starts with a digit — not permitted.
send.request POST Without content
Error message:
Root cause: When method is POST, PUT, or PATCH, the content property is required.
method is POST but content is absent.
name Exceeds Maximum Length
Error message:
Root cause: The root name property has a maxLength of 100 characters.
Name is 111 characters — maximum is 100.
Workflow or Action Name Uses Reserved nm: Prefix
Error message: Runtime error — the schema does not enforce this at the JSON Schema level, but the nativeMsg platform rejects names beginning with nm: at deploy time.
Root cause: Workflow and action names MUST NOT begin with the prefix nm:. This prefix is reserved for internal nativeMsg system identifiers.
RichCard With No Content Fields
Error message:
Root cause: Each RichCard in a carousel MUST include at least one of: title, description, or media.
First card has no title, description, or media.
Debugging Checklist
Follow these steps in order when an experience fails validation or does not behave as expected at runtime.
Validate against the schema locally
Run the experience JSON through AJV (Node.js), jsonschema (Python), or ajv-cli before deploying. See Quick Start — Schema Validation for complete examples. Fix all reported errors before proceeding.
Last updated
Was this helpful?

