Debugging a flow
The most common bug: “my customer tapped a button but the flow didn’t move on.” Walk through this checklist — in order — and most of the time you’ll find the cause in the first two steps.
1. Did you re-publish after the edit?
Flows only run the published version. If you edited a flow but didn’t click Publish, customers are still running the older snapshot.
→ Open the flow → click Publish → try again with a new test conversation.
2. Did the customer actually tap that button?
Open the conversation in the inbox. The customer’s tap shows up as a message in the thread. Confirm:
- It’s the button you expect (the label matches).
- It arrived after your last publish (anything older was run against the old version).
If the tap isn’t in the thread at all, the message never reached us — most often a phone number quality / opt-out / 24-hour-window issue. See delivery troubleshooting.
3. Was the button actually wired to a next step?
Open the flow editor. Hover the block that asked the question:
- Every button you offered must have a wire coming out of its green socket going somewhere. A button with no outgoing wire = dead end.
- For the user-input block, note there are two sockets — “On answer” and “Continue”. Pick the one you actually meant to use.
If a wire was missing, drag one + re-publish.
4. Did the next block fail?
Sometimes the button works fine but the block it routes to is broken. The most common cases:
- Template message — Meta rejected it. The conversation will show a system note like “WhatsApp rejected this template — parameter format does not match.” Fix the template variables in the block config.
- HTTP request — the upstream API errored or timed out. The block’s developer panel (top-right of the conversation, Inspect flow state) shows the response.
- 24-hour window expired — for non-template outbound messages, you can only reply within 24h of the customer’s last message.
5. Inspect the live flow state
For the most precise look at what’s happening:
- Open the conversation in the inbox.
- Click the developer panel icon (top-right of the conversation).
- Click Inspect flow state.
You’ll see the current flow, the step the customer is stuck on, the variables the runtime has so far, and the timeline of every advance + block render.
Still stuck? Use the Suggest an edit link at the bottom of this page — tell us what flow + what symptom and we’ll add the case here.