kipn.ai
Shared workflow report

YouTube to Knowledge

Analyzed

Executive Summary
n8n
Production RiskMedium

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.

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.

69/ 100
Overall
Risk: MediumCost: High
Reliability
17
Security
100
Cost Risk
92
Observability
100
AI Governance
100
Naming
100
Complexity
100
Nodes
15
Edges
7
External calls
5
LLM nodes
4
AI via HTTP
0
Loops
0
Error handlers
0
Unreachable
0
Max depth
6
Workflow Graph
Graph
15 nodes · 7 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

N/A
Empty Response Handling

Zero-result lookups break downstream logic

Missing
AI Output Limits

Output cost and parsing risk unbounded

Present
AI Output Format

Free-form output will break downstream parsers

1 of 4 AI nodes lack structured output

Partial
Activity Logging

Side effects unlogged

N/A
Write Deduplication

Webhook replays may create duplicate records

N/A

Run this analysis on your own workflows

Break Points
1Missing timeoutRisk MediumConfidence 90%5 nodes affected
Affected Nodes:
  • Fetch Transcript
  • AI Agent
  • Anthropic Sonnet 4.5
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.


2Missing error handlerRisk MediumConfidence 85%7 nodes affected
Affected Nodes:
  • Fetch Transcript
  • Build Prompt
  • Build Markdown
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.


3Empty-state not handledRisk MediumConfidence 80%2 nodes affected
Affected Nodes:
  • Fetch Transcript
  • Build Prompt
What happens:

The workflow works reliably with test data where lookups always return results. In production, when the lookup returns zero results, the expression throws a runtime error or propagates null/undefined through the rest of the workflow — silently, with no clear error message pointing to the cause.

Recommended Fix:

Add an IF node immediately after "Fetch Transcript" to branch on whether results exist (e.g., {{ $json.length > 0 }}). Route the empty case to an explicit exit, log, or notification.


4Agent without iteration limitRisk LowConfidence 85%1 node affected
Affected Nodes:
  • AI Agent
What happens:

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.

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.


5Fragile expressionRisk LowConfidence 75%1 node affected
Affected Nodes:
  • Fetch Transcript
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 `queryParameters.parameters[0].value`, change {{ $json['YouTube URL'] }} to {{ $json['YouTube URL'] ?? '' }}.

6Fragile expressionRisk LowConfidence 75%1 node affected
Affected Nodes:
  • Save to Google Drive
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 `content`, change {{ $json.markdown }} to {{ $json?.markdown }}.
  • In `name`, change {{ $json.filename }} to {{ $json?.filename }}.

7Fragile expressionRisk LowConfidence 75%1 node affected
Affected Nodes:
  • Done
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 `completionMessage`, change {{ $json.name }} to {{ $json?.name }}.

8Fragile expressionRisk LowConfidence 75%1 node affected
Affected Nodes:
  • AI Agent
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 {{ $json.userPrompt }} to {{ $json?.userPrompt }}.
  • In `options.systemMessage`, change {{ $json.system }} to {{ $json?.system }}.

9Unstructured AI outputRisk LowConfidence 75%1 node affected
Affected Nodes:
  • AI Agent
What happens:

Free-form text output varies between invocations. The downstream node assumes a specific format to parse or act on. When the model produces a slightly different structure — different key names, trailing text, markdown formatting — the downstream logic fails intermittently in ways that are hard to debug.

Recommended Fix:

Enable JSON mode (responseFormat: "json") on the AI node or connect an Output Parser sub-node with a defined schema. This forces the model to produce output in a predictable format and fails fast when it does not.

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:
  • AI Agent
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 (15)
#Issue titleIssue descriptionAffected nodes
1ReliabilityExternal call with no timeout configured

Node "Fetch Transcript" makes an external call with no timeout parameter set. The n8n execution will wait indefinitely if the provider is slow or unresponsive.

Fetch Transcript, AI Agent, Anthropic Sonnet 4.5, OpenAI GPT-5, Ollama Quen 32bHigh90%
2ReliabilityLookup result accessed without empty-state check

Node "Fetch Transcript" fetches a list or search result. A downstream expression uses $input.first() without an IF node between the lookup and the access point to handle the zero-results case.

Fetch Transcript, Build PromptHigh80%
3ReliabilityNo 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.

Fetch Transcript, Build Prompt, Build Markdown, AI Agent, Anthropic Sonnet 4.5, OpenAI GPT-5, Ollama Quen 32bHigh85%
4Cost RiskAI agent has no iteration limit

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

AI AgentMedium85%
5ReliabilityAI output drives downstream logic without a structured format

Node "AI Agent" produces free-form text output that flows into downstream logic with no Output Parser or JSON mode configured.

AI AgentMedium75%
6ReliabilityAPI response may be paginated — only first page processed

Node "Fetch Transcript" fetches data without returnAll: true or visible pagination handling (no cursor/offset parameter updating per page).

Fetch TranscriptMedium60%
7ReliabilityFragile 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 AgentMedium75%
8ReliabilityFragile expression — likely to fail when production data shape differs from test data

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

Fetch TranscriptLow75%
9ReliabilityFragile expression — likely to fail when production data shape differs from test data

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

Save to Google DriveLow75%
10ReliabilityFragile expression — likely to fail when production data shape differs from test data

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

DoneLow75%
11ReliabilityFinding: external without retry

Node "Fetch Transcript" (n8n-nodes-base.httpRequest) 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.

Fetch TranscriptInfo70%
12ReliabilityFinding: 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 AgentInfo70%
13ReliabilityFinding: external without retry

Node "Anthropic Sonnet 4.5" (@n8n/n8n-nodes-langchain.lmChatAnthropic) 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.

Anthropic Sonnet 4.5Info70%
14ReliabilityFinding: external without retry

Node "OpenAI GPT-5" (@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 GPT-5Info70%
15ReliabilityFinding: external without retry

Node "Ollama Quen 32b" (@n8n/n8n-nodes-langchain.lmChatOllama) 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.

Ollama Quen 32bInfo70%

Catch workflow risks before they catch you