Seeing this error?

INVALID_SCREEN_DATA: Global Dynamic data ‘(expression)’ on screen ROOT does not exist, but is used on screen MAIN.

This means your layout is trying to bind to a variable or screen that hasn’t been defined anywhere in your schema.

Quick Fix

If your expression like ${screen.ROOT.form.intro_text.type} throws an error, it means that ROOT screen doesn’t exist or doesn’t have the referenced data. Fix it by either adding the missing screen/data, or correcting the binding path to match an actual screen and field.

Example fix:

"label": "${screen.MAIN.form.intro_text.type}"

Or make sure ROOT contains the expected data.

The Problem

Here’s a problematic snippet:

"label": "${screen.ROOT.form.intro_text.type}"

But there’s no screen with ID ROOT or ROOT doesn’t define form.intro_text.type.

The Solution

You have two clear options:

1. Fix the Reference Path:

Update your binding to refer to a screen that exists and has that data. For example:

"label": "${screen.MAIN.form.intro_text.type}"

2. Add the Missing Screen/Data:

 If ROOT is supposed to exist, define it properly:

{
  "id": "ROOT",
  "data": {
    "form": {
      "intro_text": {
        "type": "string",
        "__example__": "Welcome"
      }
    }
  },
  ...
}

Dynamic bindings like ${screen.XYZ.data} assume that XYZ exists and contains the necessary fields. If the screen or property is missing, you’ll hit this error.

For more troubleshooting insights related to WhatsApp Business API, check out heltar.com/blogs.