Skip to content

Is my flow actually working?

Read the run counts on the flows list, and find the failure.

A flow that is attached and enabled can still be doing nothing useful. The flows list on the Clients page carries a 24-hour health summary for each one, so you can tell the difference without opening a console.

What the flows list tells you

What you seeWhat it means
128 runsFirings in the last 24 hours.
3 errors · 2% failingHow many of those firings failed, and the share.
Last run 4 minutes agoThe most recent firing.
Attached, but has not run in the last 24 hoursNothing has fired it. The trigger's event is not happening.
Not attached to any clientIt cannot run at all.

Alongside them, the row shows which kinds of trigger the flow contains (timer, schedule, chat, manual, routine, on join, combat, event), which is usually enough to see why nothing has fired.

The same summary sits in the flow editor's header, so you can tell whether the flow you are editing has been running without leaving it. Under the header, Last error shows the most recent failure, and Why has it not run? lists the likely causes when nothing has fired.

Nothing has run

Work down this list:

  1. Is it attached? Not attached to any client is the whole answer.
  2. Is it enabled? A flow showing OFF is inert.
  3. Is the client online? A flow only runs while its client is running.
  4. Can the trigger fire? A when run manually or by webhook hat never fires by itself. A chat trigger with a player allowlist only fires for those senders. A low_on_item trigger is edge-triggered and will not re-fire until the count recovers.
  5. Are the actions actually under the hat? Blocks not connected to a trigger were dropped on save. See how flows work.

Runs are failing

Add a flow error trigger. It fires whenever any other trigger's stack fails, and hands you the message and the failing event:

on flow error
notify owner: {{var:reason}} failed: {{var:error}}

One of these covers the whole flow, which beats wrapping every stack in a try.

For a specific step you suspect, check it in place instead:

open container nearest x y z · radius 6
if test last action failed
notify owner: no chest in reach

Watching it happen

Open the client's details page for the live console. Add log blocks at the points you care about. They write to that console and to the log history, and go nowhere near your notification channels:

every 5 minutes
log restock pass starting
run routine restock
log restock done

Log history is kept for 7 days.

When a chat trigger never fires

A chat trigger that looks right and never fires is almost always matching against something other than what you see in game: a colour code, a zero-width character, or a separator the server adds. Copy the exact line from the console into your trigger, or write to us with the line and the trigger: we can trace every incoming line on our side and tell you where the match fails.

Common causes

  • A container action with no window open. Every container block except open container needs one. Pair them, and close what you open.
  • A step that needs the client to be somewhere. dig needs the block in reach; walk first, or use dig nearest, which walks for you.
  • A pathfinding failure. goto reports through the pathfinding failure trigger rather than by throwing.
  • A missing variable. A client will not start while a required value is unset. On one that was already running when you deleted a value, a plain variable reads as empty, and a chat or command step that needs a missing secret sends nothing and logs a warning naming it. The client lists which values are still needed.
  • Sleeping during the day. The server refuses; the step reports it rather than retrying.