What is your goal?
Hi all — looking for a clean pattern for this scenario.
I have a linear flow:
Module A → Module B → Module C → Module D → Module E → …continues for ~10 more modules
Modules B, C, D do optional work (write a file to Airtable, download it, call an AI vision API) that should ONLY run when an upstream condition is true (specifically: a file upload field is non-empty).
When the condition is false (no file uploaded), I want to skip B, C, D entirely and have execution continue at Module E with their outputs treated as empty.
What is the problem & what have you tried?
What I’ve tried:
- Filter on the route into Module B. This works for skipping B, C, D — but Module E (and everything after) never executes because Make stops the chain at the skipped module. This is my current state and it’s the blocker.
2.Router with two routes after Module A:
Route 1 (condition true) → B → C → D → E → …
Route 2 (condition false) → E → …
This works but requires duplicating Module E and every module after it. ~10 modules duplicated. Maintainable but ugly.
3.Parallel branches. Run the B/C/D vision chain on a parallel branch off Module A, and put E directly on the main branch off A. The problem: Make runs parallel branches concurrently, so when condition is true, Module E might execute before the vision chain finishes, and references to D’s output would be empty.
What I’m looking for:
Is there a known Make pattern to:
Conditionally skip a contiguous sub-chain of modules
Resume the main chain afterwards
Without duplicating the post-skip modules
Where downstream modules can safely reference the skipped modules’ outputs (treating them as empty)
I’ve considered using a “dummy” module that produces an empty bundle on the skip-route, but I don’t see a clean way to merge two routes back into one downstream module — Make doesn’t seem to support that.
Is there a recommended idiom? Iterator + Aggregator trick? Code module that conditionally short-circuits? Some Flow Control feature I’m missing?
Plan B is to duplicate the downstream modules. Hoping there’s a better way before I do.
Thanks!
Error messages or input/output bundles
No error message — the scenario completes “successfully” but downstream modules don’t execute.
Current setup (Attempt 1 — filter on route into Module B):
When the condition is FALSE (no file uploaded):
Module A executes, output bundle as expected.
Filter on route to Module B evaluates to false — route shows 0 bundles passed in the execution log.
Modules B, C, D do not execute (expected).
All modules downstream of D (E, F, G, … ~10 modules) also do not execute — they show no execution at all in the log. This is the issue.
Scenario run shows green / success state despite the entire downstream chain being skipped.
The execution flow visually: green ticks on Module A, the filter shows 0, then nothing further. No errors raised because Make treats the filter-skip as valid flow control rather than an interruption.
When the condition is TRUE: chain runs end-to-end correctly. So the filter logic itself works, but the chain-resumption-after-skip is what I can’t solve.