Skip to content

Commit 2f0ce35

Browse files
authored
Fix invalid error-handling references in workflow advanced-patterns (#52)
The advanced-patterns.md reference cited onError blocks, maxConcurrency, and automatic retries, none of which exist in Falcon Fusion workflows. This contradicted the authoritative guidance in SKILL.md, which states errors are handled through conditional routing and action-level flags, not onError blocks or retry middleware, and that no built-in retry or exponential backoff exists. Updated the counter-rationalizations table and red-flags list to reference the real mechanisms: conditional routing on Workflow.Execution.Errors, loop continue_on_partial_execution, and sequential loops for stateful or rate-limited actions. Also replaced the forEach/maxConcurrency phrasing with the actual loop construct.
1 parent 3d4a135 commit 2f0ce35

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

skills/workflows-development/references/advanced-patterns.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -118,19 +118,19 @@ actions:
118118
| Your Excuse | Reality |
119119
|-------------|---------|
120120
| "YAML is simple, I don't need patterns" | Fusion YAML has execution semantics that standard YAML doesn't |
121-
| "I can chain API calls directly in code" | Workflows handle retries, state persistence, and parallelism automatically |
122-
| "I'll add error handling later" | Workflow failures without onError blocks corrupt state and lose context |
121+
| "I can chain API calls directly in code" | Workflows handle state persistence and parallelism automatically |
122+
| "I'll add error handling later" | Without conditional routing on `Workflow.Execution.Errors` and loop `continue_on_partial_execution`, failures abort the workflow and lose context |
123123
| "RTR is just like SSH" | RTR has session management, host targeting, and result aggregation built-in |
124-
| "forEach is overkill for small lists" | forEach with maxConcurrency prevents API rate limiting and resource exhaustion |
124+
| "A loop is overkill for small lists" | Sequential loops keep stateful and rate-limited actions from racing each other |
125125
| "Conditional logic belongs in Functions" | Workflow-level conditionals skip steps entirely, saving execution time |
126126

127127
## Red Flags - STOP Immediately
128128

129129
If you catch yourself:
130130
- Writing raw API call chains in Functions instead of workflow steps
131-
- Creating multi-step workflows without onError blocks
131+
- Creating multi-step workflows without error routing (conditional branches on `Workflow.Execution.Errors`)
132132
- Hardcoding host IDs instead of using host groups or dynamic queries
133-
- Using unbounded parallel execution without maxConcurrency
133+
- Using concurrent loops (`sequential: false`) for stateful or rate-limited actions that should run sequentially
134134
- Storing secrets in workflow YAML instead of environment variables
135135

136136
**STOP. Follow the patterns above. No shortcuts.**

0 commit comments

Comments
 (0)