Mapping & data types
The largest family by far, and the one where the error is most misleading.
Empty value vs. wrong type vs. a field Make never learned
- Empty value: the mapping is valid, the upstream bundle simply had nothing in it. The fix is upstream, not on the module that complained.
- Wrong type: text where a number is expected, a date string the app will not parse, a single item where a collection is required. The mapping is fine; the shape is not.
- A field Make never learned: the module was configured before the upstream output was ever seen with real data, so the picker offers a structure that does not exist.
These three produce nearly identical messages and have three different fixes. Separating them is most of the work.
Filters & routers
The failure mode here is silence: nothing errors, nothing happens.
- Condition never true: the comparison looks right on screen but compares a number stored as text, or a value carrying a trailing space, or a date in another format.
- Bundles blocked upstream: a filter earlier in the chain swallowed everything, so the module downstream looks like it produced nothing when it was simply never reached.
- Overlapping route conditions: a Router can process multiple matching routes, sequentially. Check each filter; route order does not make the branches mutually exclusive.
A blocked bundle and a bundle that was never produced look the same from downstream. Only the execution data tells them apart.
Webhooks & OAuth
Connection-level failures, where the scenario is usually blameless.
- Never registered: the webhook was re-created and got a new URL, while the source system keeps posting to the old one.
- Payload rejected: the source changed its content type or its structure, and the scenario is still parsing the old shape.
- Scope too narrow: the connection was authorised for reading and the operation writes. It worked for months, which is what makes it hard to spot.
- Token expired: it worked yesterday, nothing changed, it fails today. An expired token is one possibility; check the actual response and connection state.
Iterators & aggregators
Structure problems, where the count of bundles is the tell.
- Unlearned structure: the Iterator sees a text blob where you expect a list, because the source module never ran on real data.
- Empty array: zero bundles produced, so everything downstream silently does nothing.
- Lost grouping: the Aggregator points at the wrong source module and groups over a different loop than the one you meant. This is a configuration mistake far more often than a data one.
When a run takes far longer than it should, look at the bundle count on each module. The one that jumps is where to start.
Something broke right now?
Paste the error. Your first 3 completed analyses are free.
Diagnose my workflow