pasted-template.json
Analyzed
External call with no timeout configured — A single slow external call can block the entire workflow execution. At high trigger frequency, accumulated stuck executions can exhaust the n8n execution queue.
| Check | Description | Status |
|---|---|---|
| Failure Alerting | Failures silent — only visible in execution log | Missing |
| Retry on Failure | Transient failures cause permanent stops | Present |
| Request Timeouts | Slow providers can block execution indefinitely | Missing |
| Duplicate Prevention | Retry on write events creates duplicate records | Missing |
| Empty Response Handling | Zero-result lookups break downstream logic | Present |
| AI Output Limits | Output cost and parsing risk unbounded | N/A |
| AI Output Format | Free-form output will break downstream parsers | N/A |
| Activity Logging | Side effects unlogged | Present |
| Write Deduplication | Webhook replays may create duplicate records | Present |
Run this analysis on your own workflows
- date
- Get query Report
- Get Page Report
A single slow external call can block the entire workflow execution. At high trigger frequency, accumulated stuck executions can exhaust the n8n execution queue.
Set a timeout under the node's Additional Options. A value of 10,000–30,000 ms (10–30 seconds) is a reasonable starting point for most APIs; adjust based on the provider's documented SLA.
- Edit Fields[19370d12]
- Edit Fields1
- Edit Fields2
Operators cannot tell from external signals that a run failed. Silent failures go undetected until a downstream system shows missing data or a user reports a problem.
Connect a dedicated Error Workflow in workflow settings, or add a per-node onError: "continueErrorOutput" path that sends an alert via Slack, email, or a logging service.
- Edit Fields[19370d12]
These expressions work reliably against test data where all fields are present. In production, fields may be absent, null, or differently typed — causing a runtime error or silent null propagation at the point of the expression.
- In `assignments.assignments[0].value`, change {{ $json.keys[0] }} to {{ $json.keys?.[0] }}.
- In `assignments.assignments[1].value`, change {{ $json.clicks }} to {{ $json?.clicks }}.
- In `assignments.assignments[2].value`, change {{ $json.impressions }} to {{ $json?.impressions }}.
- In `assignments.assignments[3].value`, change {{ $json.ctr }} to {{ $json?.ctr }}.
- In `assignments.assignments[4].value`, change {{ $json.position }} to {{ $json?.position }}.
- Edit Fields1
These expressions work reliably against test data where all fields are present. In production, fields may be absent, null, or differently typed — causing a runtime error or silent null propagation at the point of the expression.
- In `assignments.assignments[0].value`, change {{ $json.keys[0] }} to {{ $json.keys?.[0] }}.
- In `assignments.assignments[1].value`, change {{ $json.clicks }} to {{ $json?.clicks }}.
- In `assignments.assignments[2].value`, change {{ $json.impressions }} to {{ $json?.impressions }}.
- In `assignments.assignments[3].value`, change {{ $json.ctr }} to {{ $json?.ctr }}.
- In `assignments.assignments[4].value`, change {{ $json.position }} to {{ $json?.position }}.
- Edit Fields2
These expressions work reliably against test data where all fields are present. In production, fields may be absent, null, or differently typed — causing a runtime error or silent null propagation at the point of the expression.
- In `assignments.assignments[0].value`, change {{ $json.keys[0] }} to {{ $json.keys?.[0] }}.
- In `assignments.assignments[1].value`, change {{ $json.clicks }} to {{ $json?.clicks }}.
- In `assignments.assignments[2].value`, change {{ $json.impressions }} to {{ $json?.impressions }}.
- In `assignments.assignments[3].value`, change {{ $json.ctr }} to {{ $json?.ctr }}.
- In `assignments.assignments[4].value`, change {{ $json.position }} to {{ $json?.position }}.
| # | Issue title | Issue description | Affected nodes | |||
|---|---|---|---|---|---|---|
| 1 | Reliability | External call with no timeout configured | Node "date" makes an external call with no timeout parameter set. The n8n execution will wait indefinitely if the provider is slow or unresponsive. | date, Get query Report, Get Page Report | High | 90% |
| 2 | Reliability | No error handler or failure notification path | Workflow has 7 high-risk nodes (external calls or writes) with no configured error workflow and no inline notification path. If a production execution fails, the failure only appears in execution history. | Edit Fields, Edit Fields1, Edit Fields2, date, Set your domain, Get query Report, Get Page Report | High | 85% |
| 3 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "Edit Fields" contains expression(s) with risky patterns that assume fields are always present. | Edit Fields | Medium | 90% |
| 4 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "Edit Fields1" contains expression(s) with risky patterns that assume fields are always present. | Edit Fields1 | Medium | 90% |
| 5 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "Edit Fields2" contains expression(s) with risky patterns that assume fields are always present. | Edit Fields2 | Medium | 90% |
| 6 | Naming | Finding: poor naming generic | 2 node(s) use default/generic names.. Node "Edit Fields" (n8n-nodes-base.set) has a generic default name.. Node "Schedule Trigger" (n8n-nodes-base.scheduleTrigger) has a generic default name. | Edit Fields, Schedule Trigger | Low | 90% |