Finding: pinned data in production — Review the finding details and address accordingly.
AI node has no output token cap — Without a cap, models occasionally produce very long outputs — particularly when given an ambiguous or open-ended prompt. This increases cost unpredictably and can cause downstream parsing to fail if the consumer expects a bounded response.
Side-effect node has no audit trail — If this action is disputed, replayed, or causes a data inconsistency, there is no structured record of what was sent, when, and with what data. Debugging requires cross-referencing n8n execution history with the external system's own logs.
| 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 4 of 9 AI nodes missing token cap | Partial |
| AI Output Format | Free-form output will break downstream parsers | Present |
| Activity Logging | Side effects unlogged | Missing |
| Write Deduplication | Webhook replays may create duplicate records | Missing |
Run this analysis on your own workflows
- Send a message
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 `sendTo`, change {{ $('Webhook').item.json.body.data.fields[2].value }} to {{ $('Webhook')?.item?.json?.body?.data?.fields[2]?.value }}.
- In `message`, change {{ $('Webhook').item.json.body.data.fields[0].value }} to {{ $('Webhook')?.item?.json?.body?.data?.fields[0]?.value }}.
- In `message`, change {{ $json.output.questions }} to {{ $json?.output.questions }}.
- Send an SMS/MMS/WhatsApp message
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 `to`, change {{ $('Webhook').item.json.body.data.fields[3].value }} to {{ $('Webhook')?.item?.json?.body?.data?.fields[3]?.value }}.
- In `message`, change {{ $('Webhook').item.json.body.data.fields[0].value }} to {{ $('Webhook')?.item?.json?.body?.data?.fields[0]?.value }}.
Currently covers AI/LLM nodes. Non-AI API costs will be added in a future update.
- AI Agent
- Full payload in prompt — unbounded input tokens
- No output cap — unbounded output tokens
- LLM chain — each subsequent call pays input tokens for all prior outputs
- Agent iteration risk — no max iterations set
Set maxTokens to a value appropriate for the task. Classification tasks rarely need more than 100 tokens; structured JSON output typically needs 200–500; long-form summaries may need 1,000–2,000. Start conservative and increase if needed.
- AI Agent1
- AI Agent3
- AI Agent4
- Full payload in prompt — unbounded input tokens
- No output cap — unbounded output tokens
- Agent iteration risk — no max iterations set
Set maxTokens to a value appropriate for the task. Classification tasks rarely need more than 100 tokens; structured JSON output typically needs 200–500; long-form summaries may need 1,000–2,000. Start conservative and increase if needed.
- AI Agent2
no max iterations set
Set maxIterations to 10–20 for most agentic tasks. Monitor actual iteration counts in execution history and adjust up if legitimate tasks are being cut short.
| # | Issue title | Issue description | Affected nodes | |||
|---|---|---|---|---|---|---|
| 1 | Reliability | AI node blocks synchronous webhook response path | Node "Webhook" executes in the synchronous response path of the webhook trigger. The webhook trigger's | Webhook, AI Agent | High | 85% |
| 2 | Reliability | AI node blocks synchronous webhook response path | Node "Webhook1" executes in the synchronous response path of the webhook trigger. The webhook trigger's | Webhook1, AI Agent3 | High | 85% |
| 3 | Cost Risk | AI node has no output token cap | Node "AI Agent" has no | AI Agent | High | 85% |
| 4 | Cost Risk | AI node has no output token cap | Node "AI Agent1" has no | AI Agent1 | High | 85% |
| 5 | Cost Risk | AI node has no output token cap | Node "AI Agent3" has no | AI Agent3 | High | 85% |
| 6 | Cost Risk | AI node has no output token cap | Node "AI Agent4" has no | AI Agent4 | High | 85% |
| 7 | Reliability | External call with no timeout configured | Node "AI Agent" makes an external call with no timeout parameter set. The n8n execution will wait indefinitely if the provider is slow or unresponsive. | AI Agent, Services Offered, OpenAI Chat Model, AI Agent1, Get a document in Google Docs, Send a message, Send an SMS/MMS/WhatsApp message, HTTP Request, AI Agent2, OpenAI Chat Model1, Lead Urgency determiner, Reply to a message, AI Agent3, Lead urgency questions, Update row in sheet, HTTP Request2, AI Agent4, OpenAI Chat Model2, Lead urgency, Update row in sheet1, Send an SMS/MMS/WhatsApp message1, OpenAI Chat Model3 | High | 90% |
| 8 | Reliability | Finding: pinned data in production | pinned node: "Webhook" (role: webhook_trigger). 1 pinned item(s) — node never executes; returns static data every run | Webhook | High | 99% |
| 9 | Reliability | Finding: pinned data in production | pinned node: "AI Agent1" (role: ai_agent). 1 pinned item(s) — node never executes; returns static data every run. downstream write node(s): "Send a message" (external_write), "HTTP Request" (unknown_write), "Send an SMS/MMS/WhatsApp message" (external_write) | AI Agent1, Send a message, HTTP Request, Send an SMS/MMS/WhatsApp message | High | 99% |
| 10 | Reliability | Finding: pinned data in production | pinned node: "Send a message" (role: external_read). 1 pinned item(s) — node never executes; returns static data every run | Send a message | High | 99% |
| 11 | Reliability | Finding: pinned data in production | pinned node: "Gmail Trigger" (role: trigger). 1 pinned item(s) — node never executes; returns static data every run | Gmail Trigger | High | 99% |
| 12 | Reliability | Finding: pinned data in production | pinned node: "AI Agent2" (role: ai_agent). 1 pinned item(s) — node never executes; returns static data every run. downstream write node(s): "Reply to a message" (external_write) | AI Agent2, Reply to a message | High | 99% |
| 13 | Reliability | Finding: pinned data in production | pinned node: "Reply to a message" (role: external_read). 1 pinned item(s) — node never executes; returns static data every run | Reply to a message | High | 99% |
| 14 | Reliability | Finding: pinned data in production | pinned node: "Webhook1" (role: webhook_trigger). 1 pinned item(s) — node never executes; returns static data every run | Webhook1 | High | 99% |
| 15 | Reliability | Finding: pinned data in production | pinned node: "AI Agent3" (role: ai_agent). 1 pinned item(s) — node never executes; returns static data every run. downstream write node(s): "Update row in sheet" (external_write), "HTTP Request2" (unknown_write) | AI Agent3, Update row in sheet, HTTP Request2 | High | 99% |
| 16 | Reliability | Finding: pinned data in production | pinned node: "Twilio Trigger" (role: trigger). 1 pinned item(s) — node never executes; returns static data every run | Twilio Trigger | High | 99% |
| 17 | Reliability | Finding: pinned data in production | pinned node: "AI Agent4" (role: ai_agent). 1 pinned item(s) — node never executes; returns static data every run. downstream write node(s): "Update row in sheet1" (external_write), "Send an SMS/MMS/WhatsApp message1" (external_write) | AI Agent4, Update row in sheet1, Send an SMS/MMS/WhatsApp message1 | High | 99% |
| 18 | Security | Finding: webhook no auth | authentication: absent. path: short custom path "__KIPNAI_SAN__WEBHOOK_URL__p7w4FJYj__" (enumerable). downstream write node(s): "Send a message", "HTTP Request", "Send an SMS/MMS/WhatsApp message" | Webhook, Send a message, HTTP Request, Send an SMS/MMS/WhatsApp message | High | 90% |
| 19 | Security | Finding: webhook no auth | authentication: absent. path: short custom path "__KIPNAI_SAN__WEBHOOK_URL__ihlaPQ0N__" (enumerable). downstream write node(s): "Update row in sheet", "HTTP Request2" | Webhook1, Update row in sheet, HTTP Request2 | High | 90% |
| 20 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "AI Agent" contains expression(s) with risky patterns that assume fields are always present. | AI Agent | High | 90% |
| 21 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "AI Agent1" contains expression(s) with risky patterns that assume fields are always present. | AI Agent1 | High | 90% |
| 22 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "Send a message" contains expression(s) with risky patterns that assume fields are always present. | Send a message | High | 90% |
| 23 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "Send an SMS/MMS/WhatsApp message" contains expression(s) with risky patterns that assume fields are always present. | Send an SMS/MMS/WhatsApp message | High | 90% |
| 24 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "AI Agent2" contains expression(s) with risky patterns that assume fields are always present. | AI Agent2 | High | 85% |
| 25 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "Reply to a message" contains expression(s) with risky patterns that assume fields are always present. | Reply to a message | High | 85% |
| 26 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "AI Agent3" contains expression(s) with risky patterns that assume fields are always present. | AI Agent3 | High | 85% |
| 27 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "Update row in sheet" contains expression(s) with risky patterns that assume fields are always present. | Update row in sheet | High | 85% |
| 28 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "AI Agent4" contains expression(s) with risky patterns that assume fields are always present. | AI Agent4 | High | 85% |
| 29 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "Update row in sheet1" contains expression(s) with risky patterns that assume fields are always present. | Update row in sheet1 | High | 85% |
| 30 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "Send an SMS/MMS/WhatsApp message1" contains expression(s) with risky patterns that assume fields are always present. | Send an SMS/MMS/WhatsApp message1 | High | 85% |
| 31 | Reliability | No error handler or failure notification path | Workflow has 26 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. | AI Agent, Services Offered, OpenAI Chat Model, AI Agent1, Get a document in Google Docs, Structured Output Parser, Send a message, Send an SMS/MMS/WhatsApp message, HTTP Request, AI Agent2, Structured Output Parser1, OpenAI Chat Model1, Lead Urgency determiner, Reply to a message, AI Agent3, Structured Output Parser2, Lead urgency questions, Update row in sheet, HTTP Request2, AI Agent4, Structured Output Parser3, OpenAI Chat Model2, Lead urgency, Update row in sheet1, Send an SMS/MMS/WhatsApp message1, OpenAI Chat Model3 | High | 85% |
| 32 | Cost Risk | AI agent has no iteration limit | Agent node "AI Agent" has no | AI Agent | Medium | 85% |
| 33 | Cost Risk | AI agent has no iteration limit | Agent node "AI Agent1" has no | AI Agent1 | Medium | 85% |
| 34 | Cost Risk | AI agent has no iteration limit | Agent node "AI Agent2" has no | AI Agent2 | Medium | 85% |
| 35 | Cost Risk | AI agent has no iteration limit | Agent node "AI Agent3" has no | AI Agent3 | Medium | 85% |
| 36 | Cost Risk | AI agent has no iteration limit | Agent node "AI Agent4" has no | AI Agent4 | Medium | 85% |
| 37 | Reliability | API response may be paginated — only first page processed | Node "Services Offered" fetches data without | Services Offered | Medium | 60% |
| 38 | Reliability | API response may be paginated — only first page processed | Node "Get a document in Google Docs" fetches data without | Get a document in Google Docs | Medium | 60% |
| 39 | Reliability | API response may be paginated — only first page processed | Node "Lead Urgency determiner" fetches data without | Lead Urgency determiner | Medium | 60% |
| 40 | Reliability | API response may be paginated — only first page processed | Node "Lead urgency questions" fetches data without | Lead urgency questions | Medium | 60% |
| 41 | Reliability | API response may be paginated — only first page processed | Node "Lead urgency" fetches data without | Lead urgency | Medium | 60% |
| 42 | Reliability | Branch with no fallback path | Switch/IF node "Switch" has no Switch/Router node "Switch" has no "Otherwise" or fallback output — items that match no condition will be silently discarded. | Switch | Medium | 60% |
| 43 | Complexity | Finding: complexity nodes | Workflow contains 45 active nodes (threshold: >30 medium, >60 high, >100 critical). | — | Medium | 100% |
| 44 | Reliability | Finding: pinned data in production | pinned node: "AI Agent" (role: ai_agent). 1 pinned item(s) — node never executes; returns static data every run | AI Agent | Medium | 99% |
| 45 | Reliability | Finding: pinned data in production | pinned node: "Get row(s) in sheet" (role: unknown). 1 pinned item(s) — node never executes; returns static data every run | Get row(s) in sheet | Medium | 99% |
| 46 | Reliability | Finding: pinned data in production | pinned node: "Append row in sheet1" (role: unknown). 1 pinned item(s) — node never executes; returns static data every run | Append row in sheet1 | Medium | 99% |
| 47 | Reliability | Finding: pinned data in production | pinned node: "Get row(s) in sheet1" (role: unknown). 1 pinned item(s) — node never executes; returns static data every run | Get row(s) in sheet1 | Medium | 99% |
| 48 | Reliability | Finding: pinned data in production | pinned node: "Update row in sheet" (role: external_write). 1 pinned item(s) — node never executes; returns static data every run | Update row in sheet | Medium | 99% |
| 49 | Reliability | Finding: pinned data in production | pinned node: "Create an event1" (role: unknown). 1 pinned item(s) — node never executes; returns static data every run | Create an event1 | Medium | 99% |
| 50 | Reliability | Finding: pinned data in production | pinned node: "Get row(s) in sheet2" (role: unknown). 1 pinned item(s) — node never executes; returns static data every run | Get row(s) in sheet2 | Medium | 99% |
| 51 | Reliability | Finding: pinned data in production | pinned node: "Update row in sheet1" (role: external_write). 1 pinned item(s) — node never executes; returns static data every run | Update row in sheet1 | Medium | 99% |
| 52 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "Append row in sheet" contains expression(s) with risky patterns that assume fields are always present. | Append row in sheet | Medium | 90% |
| 53 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "If" contains expression(s) with risky patterns that assume fields are always present. | If | Medium | 90% |
| 54 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "Append row in sheet1" contains expression(s) with risky patterns that assume fields are always present. | Append row in sheet1 | Medium | 85% |
| 55 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "Create an event" contains expression(s) with risky patterns that assume fields are always present. | Create an event | Medium | 90% |
| 56 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "If1" contains expression(s) with risky patterns that assume fields are always present. | If1 | Medium | 85% |
| 57 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "Create an event1" contains expression(s) with risky patterns that assume fields are always present. | Create an event1 | Medium | 90% |
| 58 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "If2" contains expression(s) with risky patterns that assume fields are always present. | If2 | Medium | 85% |
| 59 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "Create an event2" contains expression(s) with risky patterns that assume fields are always present. | Create an event2 | Medium | 85% |
| 60 | Cost Risk | Full or large payload detected in AI prompt | Node "AI Agent" receives text: large-payload keyword 'body' in its prompt parameter. This sends an unbounded amount of data to the model. | AI Agent | Medium | 80% |
| 61 | Cost Risk | Full or large payload detected in AI prompt | Node "AI Agent1" receives text: large-payload keyword 'body' in its prompt parameter. This sends an unbounded amount of data to the model. | AI Agent1 | Medium | 80% |
| 62 | Cost Risk | Full or large payload detected in AI prompt | Node "AI Agent3" receives text: large-payload keyword 'transcript' in its prompt parameter. This sends an unbounded amount of data to the model. | AI Agent3 | Medium | 80% |
| 63 | Cost Risk | Full or large payload detected in AI prompt | Node "AI Agent4" receives text: large-payload keyword 'body' in its prompt parameter. This sends an unbounded amount of data to the model. | AI Agent4 | Medium | 80% |
| 64 | Cost Risk | LLM chain — each subsequent call pays input tokens for all prior outputs | Chain detected: AI Agent, AI Agent1 (2 nodes). Each node's output is passed as input to the next node's prompt. | AI Agent, AI Agent1 | Medium | 80% |
| 65 | Observability | Side-effect node has no audit trail | Node "Send a message" performs a write node: "send a message" (sideeffect: external_write) operation with no logging or audit trail detected downstream. | Send a message | Medium | 70% |
| 66 | Observability | Side-effect node has no audit trail | Node "Send an SMS/MMS/WhatsApp message" performs a write node: "send an sms/mms/whatsapp message" (sideeffect: external_write) operation with no logging or audit trail detected downstream. | Send an SMS/MMS/WhatsApp message | Medium | 70% |
| 67 | Observability | Side-effect node has no audit trail | Node "HTTP Request" performs a write node: "http request" (sideeffect: unknown_write) operation with no logging or audit trail detected downstream. | HTTP Request | Medium | 70% |
| 68 | Observability | Side-effect node has no audit trail | Node "Reply to a message" performs a write node: "reply to a message" (sideeffect: external_write) operation with no logging or audit trail detected downstream. | Reply to a message | Medium | 70% |
| 69 | Observability | Side-effect node has no audit trail | Node "Update row in sheet" performs a write node: "update row in sheet" (sideeffect: external_write) operation with no logging or audit trail detected downstream. | Update row in sheet | Medium | 70% |
| 70 | Observability | Side-effect node has no audit trail | Node "HTTP Request2" performs a write node: "http request2" (sideeffect: unknown_write) operation with no logging or audit trail detected downstream. | HTTP Request2 | Medium | 70% |
| 71 | Observability | Side-effect node has no audit trail | Node "Update row in sheet1" performs a write node: "update row in sheet1" (sideeffect: external_write) operation with no logging or audit trail detected downstream. | Update row in sheet1 | Medium | 70% |
| 72 | Observability | Side-effect node has no audit trail | Node "Send an SMS/MMS/WhatsApp message1" performs a write node: "send an sms/mms/whatsapp message1" (sideeffect: external_write) operation with no logging or audit trail detected downstream. | Send an SMS/MMS/WhatsApp message1 | Medium | 70% |
| 73 | Reliability | Webhook trigger feeds write operation without unique-key protection | The webhook trigger feeds node "Webhook" without a visible unique key constraint or deduplication step. No ID field parameter was detected in the write node configuration. | Webhook, Send a message | Medium | 65% |
| 74 | Reliability | Webhook trigger feeds write operation without unique-key protection | The webhook trigger feeds node "Webhook" without a visible unique key constraint or deduplication step. No ID field parameter was detected in the write node configuration. | Webhook, HTTP Request | Medium | 65% |
| 75 | Reliability | Webhook trigger feeds write operation without unique-key protection | The webhook trigger feeds node "Webhook" without a visible unique key constraint or deduplication step. No ID field parameter was detected in the write node configuration. | Webhook, Send an SMS/MMS/WhatsApp message | Medium | 65% |
| 76 | Reliability | Webhook trigger feeds write operation without unique-key protection | The webhook trigger feeds node "Webhook1" without a visible unique key constraint or deduplication step. No ID field parameter was detected in the write node configuration. | Webhook1, Update row in sheet | Medium | 65% |
| 77 | Reliability | Webhook trigger feeds write operation without unique-key protection | The webhook trigger feeds node "Webhook1" without a visible unique key constraint or deduplication step. No ID field parameter was detected in the write node configuration. | Webhook1, HTTP Request2 | Medium | 65% |
| 78 | Reliability | Branch with no fallback path | Switch/IF node "If" has no a default/fallback output — items that match no condition will be silently discarded. | If | Low | 60% |
| 79 | Reliability | Branch with no fallback path | Switch/IF node "If1" has no a default/fallback output — items that match no condition will be silently discarded. | If1 | Low | 60% |
| 80 | Reliability | Branch with no fallback path | Switch/IF node "If2" has no a default/fallback output — items that match no condition will be silently discarded. | If2 | Low | 60% |
| 81 | Naming | Finding: poor naming generic | 4 node(s) use default/generic names.. Node "Webhook" (n8n-nodes-base.webhook) has a generic default name.. Node "Switch" (n8n-nodes-base.switch) has a generic default name.. Node "HTTP Request" (n8n-nodes-base.httpRequest) has a generic default name.. Node "If" (n8n-nodes-base.if) has a generic default name. | Webhook, Switch, HTTP Request, If | Low | 90% |
| 82 | Reliability | Fragile expression — likely to fail when production data shape differs from test data | Node "Switch" contains expression(s) with risky patterns that assume fields are always present. | Switch | Low | 75% |
| 83 | Reliability | Finding: external without retry | Node "AI Agent" (@n8n/n8n-nodes-langchain.agent) is a read-only external call with no retry configured.. sideEffect: read_only, role: ai_agent. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures. | AI Agent | Info | 70% |
| 84 | Reliability | Finding: external without retry | Node "Services Offered" (n8n-nodes-base.googleDocsTool) is a read-only external call with no retry configured.. sideEffect: read_only, role: external_read. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures. | Services Offered | Info | 70% |
| 85 | Reliability | Finding: external without retry | Node "OpenAI Chat Model" (@n8n/n8n-nodes-langchain.lmChatOpenAi) is a read-only external call with no retry configured.. sideEffect: read_only, role: ai_model_call. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures. | OpenAI Chat Model | Info | 70% |
| 86 | Reliability | Finding: external without retry | Node "AI Agent1" (@n8n/n8n-nodes-langchain.agent) is a read-only external call with no retry configured.. sideEffect: read_only, role: ai_agent. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures. | AI Agent1 | Info | 70% |
| 87 | Reliability | Finding: external without retry | Node "Get a document in Google Docs" (n8n-nodes-base.googleDocsTool) is a read-only external call with no retry configured.. sideEffect: read_only, role: external_read. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures. | Get a document in Google Docs | Info | 70% |
| 88 | Reliability | Finding: external without retry | Node "AI Agent2" (@n8n/n8n-nodes-langchain.agent) is a read-only external call with no retry configured.. sideEffect: read_only, role: ai_agent. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures. | AI Agent2 | Info | 70% |
| 89 | Reliability | Finding: external without retry | Node "OpenAI Chat Model1" (@n8n/n8n-nodes-langchain.lmChatOpenAi) is a read-only external call with no retry configured.. sideEffect: read_only, role: ai_model_call. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures. | OpenAI Chat Model1 | Info | 70% |
| 90 | Reliability | Finding: external without retry | Node "Lead Urgency determiner" (n8n-nodes-base.googleDocsTool) is a read-only external call with no retry configured.. sideEffect: read_only, role: external_read. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures. | Lead Urgency determiner | Info | 70% |
| 91 | Reliability | Finding: external without retry | Node "AI Agent3" (@n8n/n8n-nodes-langchain.agent) is a read-only external call with no retry configured.. sideEffect: read_only, role: ai_agent. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures. | AI Agent3 | Info | 70% |
| 92 | Reliability | Finding: external without retry | Node "Lead urgency questions" (n8n-nodes-base.googleDocsTool) is a read-only external call with no retry configured.. sideEffect: read_only, role: external_read. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures. | Lead urgency questions | Info | 70% |
| 93 | Reliability | Finding: external without retry | Node "AI Agent4" (@n8n/n8n-nodes-langchain.agent) is a read-only external call with no retry configured.. sideEffect: read_only, role: ai_agent. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures. | AI Agent4 | Info | 70% |
| 94 | Reliability | Finding: external without retry | Node "OpenAI Chat Model2" (@n8n/n8n-nodes-langchain.lmChatOpenAi) is a read-only external call with no retry configured.. sideEffect: read_only, role: ai_model_call. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures. | OpenAI Chat Model2 | Info | 70% |
| 95 | Reliability | Finding: external without retry | Node "Lead urgency" (n8n-nodes-base.googleDocsTool) is a read-only external call with no retry configured.. sideEffect: read_only, role: external_read. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures. | Lead urgency | Info | 70% |
| 96 | Reliability | Finding: external without retry | Node "OpenAI Chat Model3" (@n8n/n8n-nodes-langchain.lmChatOpenAi) is a read-only external call with no retry configured.. sideEffect: read_only, role: ai_model_call. Read-only calls are typically safe to retry; enabling retryOnFail improves resilience to transient failures. | OpenAI Chat Model3 | Info | 70% |