Seeing this error?

INVALID_SCREEN_DYNAMIC_DATA
Data model schema is invalid for '${expression}'. Missing schema for ${objectProperty}.

This means your dynamic data is missing required properties for a component — typically labels or values expected in list-type components like CheckboxGroup.

The Fix (TL;DR):

When using a component like CheckboxGroup, the objects in your data array must include both label and value fields.

Add this to your schema:

"products": {
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": { "type": "string" },
      "label": { "type": "string" },
      "value": { "type": "string" }
    },
    "required": ["label", "value"]
  }
}

Why This Happens

You're binding CheckboxGroup to data.products, but each product object only contains id:

"properties": {
  "id": { "type": "string" }
}

But CheckboxGroup requires label and value properties to render correctly.

Corrected Example

"products": {
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": { "type": "string" },
      "label": { "type": "string" },
      "value": { "type": "string" }
    },
    "required": ["label", "value"]
  },
  "__example__": [
    {
      "id": "001",
      "label": "Product A",
      "value": "product_a"
    }
  ]
}

This satisfies the CheckboxGroup schema and avoids runtime errors.

Best Practices

  • Always check what properties your component expects. For lists, it’s often label and value.

  • Use the required array in your schema to enforce data integrity.

  • Include good __example__ data to preview and test early.

This validation error is about missing structure — not bad logic. WhatsApp Flows needs a precise data model that aligns with the UI components you use. Once you define the right fields, your Flow will render without issues. For more troubleshooting insights related to WhatsApp Business API, check out heltar.com/blogs.