When building a Flow, you must define a terminal screen — a screen that signifies the logical end of the user journey. If you forget to do this, you'll run into this error:
MISSING_TERMINAL_SCREEN
Terminal screen is required but not provided.
At least one terminal screen must exist in a Flow.
TL;DR
Add at least one screen with "terminal": true in your Flow. This marks the end of the Flow, allowing it to terminate properly.
What’s Going Wrong?
Here’s what’s likely wrong in your Flow JSON:
{
"version": "2.1",
"screens": [
{
"id": "screenA",
"title": "Screen Title",
"layout": {
"type": "SingleColumnLayout",
"children": [..]
}
}
]
}
Notice there’s no "terminal": true. This makes the Flow incomplete — the system doesn’t know where or how to exit.
How to Fix It
Just add "terminal": true to at least one screen. For example:
{
"id": "screenA",
"title": "Thanks",
"terminal": true,
"layout": {
"type": "SingleColumnLayout",
"children": [..]
}
}
Why It Matters
Flows without a terminal screen will never resolve or hand off correctly. Whether you're ending with a thank-you message or just handing back control, always define your termination point.
Keep this simple rule in mind: Every Flow needs a way out.
For more troubleshooting insights related to WhatsApp Business API, check out heltar.com/blogs.