When a workflow isn't producing the value or action you expect, Buttons gives you several layers of signal: from a workflow-wide error count down to the specific input handle that failed validation. This guide walks through them in the order that finds a broken node or edge fastest.
Before you begin#
- The workflow open in the editor.
- Familiarity with Value and Event connections, since several of the signals below depend on knowing which kind of connection you're looking at.
Start from the error count, not the canvas#
Don't scan the whole graph node by node. Instead:
- On the Workflows list, or the Workflows card on the Dashboard, look for a red error count. The Dashboard's version reads "{N} node(s) in error. Open workflow to fix." and opens straight into the editor with the error list already showing.
- Inside the editor, select the red "{N} Error(s)" button in the top bar. It lists every node currently in error, by type and label, along with its specific issue: either the invalid field paths and their validation messages, or the underlying error text.
This narrows a large graph down to exactly the nodes that need attention before you've looked at a single wire.
Read what a node's border is telling you#
A node's outline reflects whether it's saved and initialized, separately from whether it errored:
- Solid red border: the node is in error. Hover its header icon for the specific reason (invalid input, invalid configuration, a connection problem, a rate limit, or another error's own message).
- Dashed amber border: the node hasn't initialized yet. Its tooltip says exactly this: "This node has not been initialized. Save the workflow to initialize it." Select Apply to initialize it. This is expected right after adding a node, not a sign of a problem by itself.
- Solid accent-colored border: the node has unsaved changes on the canvas that haven't been applied yet.
- No border highlight: the node is saved, initialized, and currently error-free.
A red triangle next to one specific input on a node points to exactly which field failed validation, with the same message you'd see in the top-bar error list.
Understand why one problem can show up on several nodes#
A node that fails doesn't stop the rest of the workflow: its outgoing edges still resolve, just with an undefined value, so nodes downstream of it keep running rather than the whole graph hanging. If a downstream node requires a real value on that input, it will show its own red error too. When you see several nodes in error at once, look for the one closest to the start of the graph first; fixing it often clears the others without touching them directly.
Inspect the actual values flowing through#
Two switches in the node-pool sidebar control this, and both are useful together:
- Show Values on Edges: labels every edge with its current value, right on the wire.
- Show Debug: adds a collapsible Debug section to every node showing its full live state (status, error, input, output, and whether the backend has initialized it).
For a single value you want to keep an eye on while you keep building, drop a Display node on that wire instead: it shows the value large and typed (string, number, boolean, or an expandable object tree), with a warning that it needs Apply before it goes live if you've just added it.
Re-run the workflow to test a fix#
There's no separate "run" or "test" button for a single node or the whole workflow: selecting Apply is what actually re-evaluates the graph from the top, so it doubles as your test trigger after a change. Make a fix, apply it, and re-check the error count and node borders.
When nothing is flagged but the workflow still seems stuck#
If every node looks clean (no red borders, no error count) but the workflow clearly isn't producing what you expect, the graph may have hit an unhandled error at the engine level rather than a per-node validation problem. This doesn't currently surface anywhere in the editor. Check the server-side workflow process log for the workflow appearing to stop mid-cycle, and treat this as a case for support if you can't resolve it from the log alone.
Check Workflow Logs for the right kind of problem#
The Workflow Logs panel (below the Workflows list) is useful for confirming that an Action node actually fired, or that a Scheduler node triggered when expected: those log their own activity there. It does not currently capture node validation or render errors; for those, use the error count and node borders above rather than searching this log.
If a workflow is halted by its own rate limit#
A blinking "Rate Limit Exceeded" bar means the workflow tripped its own execution rate limit and has been paused briefly. It resumes automatically after a few seconds: this is a workflow-wide condition, not a broken node, so don't go hunting for a bad node if you see this instead.
If you get stuck#
What you see | What to try |
|---|
A dashed amber border on a node you just added. | That's expected for a new, unsaved node: select Apply to initialize it. |
Several nodes are red at once. | Check the one earliest in the graph first: a single upstream failure can cascade into several downstream error badges. |
A node is red but its tooltip just repeats a generic message. | Turn on Show Debug on that node to see its full input/output/status state, and check for a red triangle on a specific handle for a more precise field-level message. |
You're not sure what value is actually reaching a node. | Turn on Show Values on Edges, or drop a Display node on the wire in question. |
A change doesn't seem to take effect. | Confirm you selected Apply: nothing on the canvas is live until you do. |
Everything looks clean but the workflow still isn't working. | Check the server-side workflow process log for a cycle that didn't complete: this can happen without any visible error badge. |
You're looking for why an action didn't fire. | Check Workflow Logs, not the node borders: action execution is logged there specifically. |
A red "Rate Limit Exceeded" bar is showing. | Wait: it clears on its own after a few seconds. This is workflow-wide throttling, not a broken node. |
Where to go next#