Every execution is recorded, which is what makes a workflow possible to debug.
What is recorded
Each run records the workflow, the record it acted on, whether it is running, waiting, done or failed, where it has got to, and when it started and finished. Each step records one node, whether it succeeded, was skipped, failed or is waiting, and a detail message.
Reading the steps in order tells you exactly which path the run took and where it stopped.
Troubleshooting, in order
- No run recorded at all? The workflow is not active, or nothing triggered it. Test with Run… to separate "the workflow is broken" from "the trigger is not firing".
- The run stopped early? Look at the last step. A condition that went down a side with nothing connected ends the run there.
- Stuck on waiting? Either the wait has not expired, or the task engine is not running — check the Task Log. An Approval node waits indefinitely by design.
- A node ran but did nothing? Usually a misspelled field or datastore name, or a Function node naming code that does not exist.
- The wrong branch was taken? Remember that "equals" compares text, and an unconfigured condition passes everything.
- An e-mail node "worked" but no e-mail arrived? That node does not send e-mail — see Workflow Node Types.
Housekeeping
Runs and steps accumulate in proportion to how often your workflows fire, and an event-triggered workflow on a busy datastore generates a great many. Include both in your routine housekeeping.