kipn.ai
Shared workflow report

pasted-template.json

Analyzed

Executive Summary
n8n
Production RiskHigh

Fragile expression — likely to fail when production data shape differs from test data — 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.

Cost ExposureHigh

AI agent has no iteration limit — In production, agents can enter loops — repeatedly calling a tool that returns ambiguous results. Without an iteration cap, a single execution can generate hundreds of tool calls, causing unpredictable cost spikes and potentially triggering rate limits on connected APIs.

Observability Gap

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.

55/ 100
Overall
Risk: HighCost: High
Reliability
0
Security
100
Cost Risk
92
Observability
44
AI Governance
100
Naming
100
Complexity
100
Nodes
28
Edges
26
External calls
9
LLM nodes
2
AI via HTTP
0
Loops
0
Error handlers
0
Unreachable
0
Max depth
15
Workflow Graph
Graph
28 nodes · 26 edges
100%
click a node to highlight its upstream & downstream paths
Controls Matrix
Present Partial Missing
CheckDescriptionStatus
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

5 of 7 write nodes guarded

Partial
Empty Response Handling

Zero-result lookups break downstream logic

Present
AI Output Limits

Output cost and parsing risk unbounded

Present
AI Output Format

Free-form output will break downstream parsers

1 of 2 AI nodes lack structured output

Partial
Activity Logging

Side effects unlogged

Missing
Write Deduplication

Webhook replays may create duplicate records

Present

Run this analysis on your own workflows

Break Points
1Fragile expressionRisk HighConfidence 85%1 node affected
Affected Nodes:
  • Is Carousel?
What happens:

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.

Recommended Fix:
  • In `conditions.conditions[0].leftValue`, change {{ $('Take Todays Post1').item.json.type }} to {{ $('Take Todays Post1')?.item?.json?.type }}.

2Fragile expressionRisk HighConfidence 85%1 node affected
Affected Nodes:
  • IG Create Item1
What happens:

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.

Recommended Fix:
  • In `headerParameters.parameters[0].value`, change {{ $('Config2').item.json.igToken }} to {{ $('Config2')?.item?.json?.igToken }}.

3Fragile expressionRisk HighConfidence 85%1 node affected
Affected Nodes:
  • IG Create Carousel1
What happens:

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.

Recommended Fix:
  • In `headerParameters.parameters[0].value`, change {{ $('Config2').item.json.igToken }} to {{ $('Config2')?.item?.json?.igToken }}.

4Fragile expressionRisk HighConfidence 85%1 node affected
Affected Nodes:
  • IG Publish (carousel)1
What happens:

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.

Recommended Fix:
  • In `headerParameters.parameters[0].value`, change {{ $('Config2').item.json.igToken }} to {{ $('Config2')?.item?.json?.igToken }}.

5Fragile expressionRisk HighConfidence 85%1 node affected
Affected Nodes:
  • IG Create (single)1
What happens:

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.

Recommended Fix:
  • In `headerParameters.parameters[0].value`, change {{ $('Config2').item.json.igToken }} to {{ $('Config2')?.item?.json?.igToken }}.

6Fragile expressionRisk HighConfidence 85%1 node affected
Affected Nodes:
  • IG Publish (single)1
What happens:

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.

Recommended Fix:
  • In `headerParameters.parameters[0].value`, change {{ $('Config2').item.json.igToken }} to {{ $('Config2')?.item?.json?.igToken }}.

7Fragile expressionRisk HighConfidence 85%1 node affected
Affected Nodes:
  • Mark Posted1
What happens:

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.

Recommended Fix:
  • In `columns.value.id`, change {{ $('Take Todays Post1').item.json.id }} to {{ $('Take Todays Post1')?.item?.json?.id }}.
  • In `columns.value.media_id`, change {{ $json.id }} to {{ $json?.id }}.

8Missing timeoutRisk MediumConfidence 90%9 nodes affected
Affected Nodes:
  • Generate Drafts (LLM)
  • Google Gemini Chat Model
  • Render via HCTI
What happens:

A single slow external call can block the entire workflow execution. At high trigger frequency, accumulated stuck executions can exhaust the n8n execution queue.

Recommended Fix:

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.


9Fragile expressionRisk MediumConfidence 85%1 node affected
Affected Nodes:
  • Generate Drafts (LLM)
What happens:

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.

Recommended Fix:
  • In `text`, change {{ $('Config').item.json.prompt }} to {{ $('Config')?.item?.json?.prompt }}.

10Missing error handlerRisk MediumConfidence 85%16 nodes affected
Affected Nodes:
  • Config
  • Generate Drafts (LLM)
  • Parse to Rows
What happens:

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.

Recommended Fix:

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.

Cost Hotspots

Currently covers AI/LLM nodes. Non-AI API costs will be added in a future update.

1Agent iteration riskLow exposure10 pts1 node affected
Affected Nodes:
  • Generate Drafts (LLM)
What happens:

no max iterations set

Recommended Fix:

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.

Raw Findings (33)
#Issue titleIssue descriptionAffected nodes
1ReliabilityExternal call with no timeout configured

Node "Generate Drafts (LLM)" makes an external call with no timeout parameter set. The n8n execution will wait indefinitely if the provider is slow or unresponsive.

Generate Drafts (LLM), Google Gemini Chat Model, Render via HCTI, IG Create Item1, IG Create Carousel1, IG Publish (carousel)1, IG Create (single)1, IG Publish (single)1, Mark Posted1High90%
2ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Generate Drafts (LLM)" contains expression(s) with risky patterns that assume fields are always present.

Generate Drafts (LLM)High85%
3ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Is Carousel?" contains expression(s) with risky patterns that assume fields are always present.

Is Carousel?High85%
4ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "IG Create Item1" contains expression(s) with risky patterns that assume fields are always present.

IG Create Item1High85%
5ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "IG Create Carousel1" contains expression(s) with risky patterns that assume fields are always present.

IG Create Carousel1High85%
6ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "IG Publish (carousel)1" contains expression(s) with risky patterns that assume fields are always present.

IG Publish (carousel)1High85%
7ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "IG Create (single)1" contains expression(s) with risky patterns that assume fields are always present.

IG Create (single)1High85%
8ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "IG Publish (single)1" contains expression(s) with risky patterns that assume fields are always present.

IG Publish (single)1High85%
9ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Mark Posted1" contains expression(s) with risky patterns that assume fields are always present.

Mark Posted1High85%
10ReliabilityNo error handler or failure notification path

Workflow has 16 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.

Config, Generate Drafts (LLM), Parse to Rows, Google Gemini Chat Model, Build Slides (picker), Build Single (picker), Render Template, Render via HCTI, Config2, IG Create Item1, Collect Item IDs1, IG Create Carousel1, IG Publish (carousel)1, IG Create (single)1, IG Publish (single)1, Mark Posted1High85%
11Cost RiskAI agent has no iteration limit

Agent node "Generate Drafts (LLM)" has no maxIterations or equivalent parameter. The agent will continue calling tools until it decides to stop or hits a platform-level limit.

Generate Drafts (LLM)Medium85%
12ReliabilityAI output drives downstream logic without a structured format

Node "Generate Drafts (LLM)" produces free-form text output that flows into downstream logic with no Output Parser or JSON mode configured.

Generate Drafts (LLM)Medium75%
13ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Render via HCTI" contains expression(s) with risky patterns that assume fields are always present.

Render via HCTIMedium75%
14ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Carousel?1" contains expression(s) with risky patterns that assume fields are always present.

Carousel?1Medium75%
15ReliabilityIrreversible write chain with no compensation path

Nodes Render via HCTI, IG Create Item1 perform irreversible side effects in sequence with no rollback, cancellation, or compensation path between them. A failure after the first write leaves external systems partially updated.

Render via HCTI, IG Create Item1Medium75%
16ReliabilityIrreversible write chain with no compensation path

Nodes IG Create Item1, IG Create Carousel1 perform irreversible side effects in sequence with no rollback, cancellation, or compensation path between them. A failure after the first write leaves external systems partially updated.

IG Create Item1, IG Create Carousel1Medium75%
17ReliabilityIrreversible write chain with no compensation path

Nodes IG Create Carousel1, IG Publish (carousel)1 perform irreversible side effects in sequence with no rollback, cancellation, or compensation path between them. A failure after the first write leaves external systems partially updated.

IG Create Carousel1, IG Publish (carousel)1Medium75%
18ReliabilityIrreversible write chain with no compensation path

Nodes IG Publish (carousel)1, Mark Posted1 perform irreversible side effects in sequence with no rollback, cancellation, or compensation path between them. A failure after the first write leaves external systems partially updated.

IG Publish (carousel)1, Mark Posted1Medium75%
19ReliabilityIrreversible write chain with no compensation path

Nodes Render via HCTI, IG Create (single)1 perform irreversible side effects in sequence with no rollback, cancellation, or compensation path between them. A failure after the first write leaves external systems partially updated.

Render via HCTI, IG Create (single)1Medium75%
20ReliabilityIrreversible write chain with no compensation path

Nodes IG Create (single)1, IG Publish (single)1 perform irreversible side effects in sequence with no rollback, cancellation, or compensation path between them. A failure after the first write leaves external systems partially updated.

IG Create (single)1, IG Publish (single)1Medium75%
21ReliabilityIrreversible write chain with no compensation path

Nodes IG Publish (single)1, Mark Posted1 perform irreversible side effects in sequence with no rollback, cancellation, or compensation path between them. A failure after the first write leaves external systems partially updated.

IG Publish (single)1, Mark Posted1Medium75%
22ReliabilitySequential external chain with no timeouts — cascade hang risk

Nodes IG Create Item1, IG Create Carousel1, IG Publish (carousel)1 form a sequential chain of 3 external calls with no timeout configured on any node.

IG Create Item1, IG Create Carousel1, IG Publish (carousel)1Medium80%
23ObservabilitySide-effect node has no audit trail

Node "Render via HCTI" performs a write node: "render via hcti" (sideeffect: unknown_write) operation with no logging or audit trail detected downstream.

Render via HCTIMedium70%
24ObservabilitySide-effect node has no audit trail

Node "IG Create Item1" performs a write node: "ig create item1" (sideeffect: unknown_write) operation with no logging or audit trail detected downstream.

IG Create Item1Medium70%
25ObservabilitySide-effect node has no audit trail

Node "IG Create Carousel1" performs a write node: "ig create carousel1" (sideeffect: unknown_write) operation with no logging or audit trail detected downstream.

IG Create Carousel1Medium70%
26ObservabilitySide-effect node has no audit trail

Node "IG Publish (carousel)1" performs a write node: "ig publish (carousel)1" (sideeffect: unknown_write) operation with no logging or audit trail detected downstream.

IG Publish (carousel)1Medium70%
27ObservabilitySide-effect node has no audit trail

Node "IG Create (single)1" performs a write node: "ig create (single)1" (sideeffect: unknown_write) operation with no logging or audit trail detected downstream.

IG Create (single)1Medium70%
28ObservabilitySide-effect node has no audit trail

Node "IG Publish (single)1" performs a write node: "ig publish (single)1" (sideeffect: unknown_write) operation with no logging or audit trail detected downstream.

IG Publish (single)1Medium70%
29ObservabilitySide-effect node has no audit trail

Node "Mark Posted1" performs a write node: "mark posted1" (sideeffect: external_write) operation with no logging or audit trail detected downstream.

Mark Posted1Medium70%
30ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Save Drafts to Sheet" contains expression(s) with risky patterns that assume fields are always present.

Save Drafts to SheetLow75%
31ReliabilityFragile expression — likely to fail when production data shape differs from test data

Node "Only Approved1" contains expression(s) with risky patterns that assume fields are always present.

Only Approved1Low75%
32ReliabilityFinding: external without retry

Node "Generate Drafts (LLM)" (@n8n/n8n-nodes-langchain.chainLlm) 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.

Generate Drafts (LLM)Info70%
33ReliabilityFinding: external without retry

Node "Google Gemini Chat Model" (@n8n/n8n-nodes-langchain.lmChatGoogleGemini) 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.

Google Gemini Chat ModelInfo70%

Catch workflow risks before they catch you