Operating Flux

Testing and logs

Two logs tell you what a workflow actually did. Chat logs show what was said; compiled logs show what each template resolved to. Most problems are visible in the second one.

Chat logs

The conversation as it happened, session by session — what the user sent, what the agent replied. Read them to answer questions about behaviour: did the agent understand, did it escalate when it should have, was the answer any good.

Chat logs: what was said.

Compiled logs

What each node was actually given after its template expressions were resolved. This is the debugging tool, because templates are compiled at run time — the value a node receives depends on what the previous node produced on that particular run.

Read the compiled log when:

  • An AI node gives a confident answer to something nobody asked — its input probably resolved to empty.
  • An API call fails — the URL or body may not be what you think.
  • A node did not run at all — it was probably on a Decision branch that was not taken.
  • The workflow throws a compilation exception — the log names the expression that could not be compiled.
Read the compiled log before changing the prompt. "The AI gave a bad answer" is usually "the AI was given bad input". Confirm what it actually received first — it saves rewriting a prompt that was fine.

A debugging order that works

  1. Did the trigger fire? No session at all means the channel, schedule or endpoint is the problem, not the workflow.
  2. Did every node run? A missing node usually means an untaken Decision branch.
  3. What did each node receive? Compiled log. Empty values point at a key path that does not match.
  4. What did the AI node decide? Check whether it called the tools you expected — if not, the tool descriptions need work.
  5. Did the response go to the right place? A mismatched trigger and response pair looks healthy in the logs and silent to the customer.

Testing while you build

Add a UI trigger even to a workflow destined for WhatsApp. It gives you a chat interface with no channel setup, so you are testing your logic rather than your integration. Remove it or leave it — an extra trigger costs nothing until it fires.

Common errors and what they mean

SymptomUsually means
Compilation exception in the logsA hand-written CREDENTIAL expression, or a malformed template
Node ran with an empty valueThe POUT path does not match the previous node's actual output
Agent ignored its toolsTool or parameter descriptions are too vague — see Tool nodes
Nothing happened at allNo trigger fired — check the channel connection or the interval
Ran fine, customer saw nothingTrigger and response nodes do not match