New: the AI firewall watches every module and explains each incident in plain words. See how it works

Troubleshooting flows

Find out what a flow did – live figures, the Activity panel, run records, traces, events and error logs – and fixes for the most common flow problems.

When a flow does not do what you expect, look at what it actually did before you change it. This page shows where to look and lists the common causes.

Where to look

PlaceShowsKept
Flow list rowState (Running, Off, Paused, Needs approval, Invalid, Draft), Activity, errors in 24 h, Limited · … when a protection acted
Editor top barLive or Every 5 s, messages per second, waiting messages, errors in 24 h
Wires and blocksMessage counts on wires; In, Out and Errors counters on blocks; a red mark on a failing block, a yellow ring where a protection acted24 hours
Activity > DebugMessages that reach Debug blocks24 hours
Activity > RunsRecorded runs step by step: Started with, In, Sent on, It did, Left the flow24 hours
Activity > TraceOne message followed through every step24 hours
Activity > ErrorsError counters per block, newest errors, where each was caught7 days
Events: LogLines of System log blocks and the engine24 hours
Events: LifecycleDeployed, turned on and off, paused, resumed, rolled back, root changed, did not start, breaker opened and closed30 days (last 100)
Events: StatsPer block: in, out per port, errors, dropped, refused by a limit, average and longest time, slow steps24 hours
Events: AuditWho changed the flow (last 50 entries)Audit log retention
Failed messagesMessages the flow could not runUntil replayed or discarded
Errors and alerts (flow list menu)Alerts of 6 hours, flows with errors, most frequent errors of 7 days

Message contents are shown only to people with Inject messages, see payloads and dead letters. Others see counts.

Record what happens

By default only counters are kept. To see message contents:

  1. Open Activity, then Runs.
  2. Set Record to Runs that fail, or to Every run, for 5 minutes.
  3. Let messages arrive, then open a run. “Kept x of y runs” tells you how many were recorded.

To follow one message exactly, select a trigger and Trace the next message. To focus on one block, right-click it and choose Debug node (or Record this block for 5 minutes).

From any recorded input, Test with this input reruns it as a test, with nothing stored or sent.

Common problems

SymptomLikely causeFix
The flow never startsIt is Off, Paused, Needs approval or never deployedDeploy it with Run the flow after the deploy, or Resume it
A flow with a Device message trigger hears nothingIt is not a root; ordinary device messages reach only the rootMake it a profile root, or hand messages over from the root with Run flow. Only alarm and attributes_updated reach every flow, and only when ticked by name.
A root receives nothing at its Device message triggerThe root’s Flow input is wired, so it is the entryWire your steps after the Flow input
Data is not storedSave telemetry is missing on the path, or reports an errorSee Hosts, the root flow and profile root flows
not_a_deviceThe message was started by a schedule, inject, event, timer or webhook, which are not about a deviceDo device work in the root, or in a flow it runs
A Schedule fires at the wrong hourThe block’s tz is empty and the organisation’s default zone differsSet tz; check Show the next runs
The deploy refuses a sun scheduleNo latitude and longitudeFill lat and lon
A block keeps erroring with circuit_openIts calls kept failing and are pausedFix the receiver; it recovers by itself
HTTP request fails with ssrf_blockedThe address is private, or not on the endpoint’s allowed hosts, or the path leaves the base pathUse a public address and add the host to allowed_hosts
Nothing is sent after an outageThe messages were late; outbound blocks skip late messagesSet late to send on data feeds that need the backlog
A Notify sends nothingEvery recipient is in the cooldown (held), or invalid, or every channel is out of quotaCheck msg.metadata.notify in a run; set Repeat reason
Members do not get e-mail from NotifyMembers (users, roles, teams) are reached in the app, by push and in chat apps onlyAdd address rows
The flow paused itselfA loop (runs a minute over the limit) or failing runsSee Protections and failed messages
“These blocks send messages round in a loop that never waits”A cycle without a waiting blockAdd a Delay, or break the cycle
flow_cycle at deployFlows trigger each other through events or Run flowRemove one link of the cycle
A counter or average restartedThe block’s settings changed at the last deployExpected: a changed block starts with an empty memory
A script fails with script_unavailable or host_busyThe script service is not reachable or busyRetry later; contact support if it persists
A script fails with timeout or blockedOver 50 ms of CPU, three times in a rowSimplify the script, or move work to ready blocks
queue_fullA block holds too many messages or keysShorten waits, set a key, or lower the input rate
Readings arrive but the dashboard is lateCharts over more than 24 hours read minute summaries, filled every minuteWait a minute or two

A flow does too much

  • Stop one flow: switch it off in the flow list (its memory and waiting messages are kept).
  • Stop all flows: the emergency stop, from the flow list’s header menu. Device data is not stored while it is on. See Protections and failed messages.
  • Undo a change: Versions > Roll back to this. See Versions, testing and rollback.

Asking for help

When you contact support, include the flow’s name and slug, the time of the problem (with your time zone), the block and its error code, and, if you can, an exported copy of the flow (secrets are never in it). See Getting help.