Documentation Index
Fetch the complete documentation index at: https://mintlify.com/czlonkowski/n8n-skills/llms.txt
Use this file to discover all available pages before exploring further.
Validation Expert
Expert guide for interpreting and fixing n8n validation errors.The Validation Loop
From real telemetry: 7,841 occurrences of this exact pattern:Example Loop
Multiple validation iterations are completely normal. Don’t try to fix all errors at once — address them one at a time.
Validation Profiles
Choose the right profile for your development stage:- minimal
- runtime (recommended)
- ai-friendly
- strict
Use when: Quick checks during active editingValidates: Required fields only, basic structurePros: Fastest, most permissiveCons: May miss real issues
Validation Result Structure
Error Severity Levels
| Severity | Blocks Execution? | Action Required |
|---|---|---|
| Error | Yes — must fix before activation | Fix immediately |
| Warning | No — workflow can run but may have issues | Fix for production |
| Suggestion | No — optional improvement | Fix if convenient |
Common Error Catalog
missing_required — Required field not provided
missing_required — Required field not provided
What it means: A field that is required for the selected operation is absent.How to fix:
- Use
get_nodeto see what fields the operation requires - Add the missing field with an appropriate value
invalid_value — Value not in allowed options
invalid_value — Value not in allowed options
What it means: The value provided doesn’t match the list of allowed options.How to fix:
- Read the error message for the allowed values list
- Use
get_nodeto see all options
type_mismatch — Wrong data type
type_mismatch — Wrong data type
What it means: The value is the right field but the wrong type (e.g., string instead of number).
invalid_expression — Expression syntax error
invalid_expression — Expression syntax error
What it means: An expression field has invalid See the Expression Syntax skill for the full expression guide.
{{}} syntax.invalid_reference — Referenced node doesn't exist
invalid_reference — Referenced node doesn't exist
What it means: An expression references a node that doesn’t exist in the workflow.
Auto-Sanitization System
Auto-sanitization runs automatically on ALL nodes during ANY workflow update (create or update_partial).What It Fixes Automatically
- Binary Operators
- Unary Operators
- IF / Switch Metadata
Operators that compare two values:
equals, notEquals, contains, notContains, greaterThan, lessThan, startsWith, endsWithFix: Removes singleValue property (binary operators should not have it)What Auto-Sanitization Cannot Fix
| Issue | Cause | Solution |
|---|---|---|
| Broken connections | References to deleted nodes | Use cleanStaleConnections operation |
| Branch count mismatches | 3 Switch rules but only 2 connections | Add missing connections or remove rules |
| Paradoxical corrupt states | API returns corrupt, rejects updates | May require manual database intervention |
Auto-Fix Tool
For bulk fixes beyond auto-sanitization:expression-format— Fix expression syntaxtypeversion-correction— Correct typeVersionerror-output-config— Fix error output settingswebhook-missing-path— Add missing webhook pathstypeversion-upgrade— Upgrade to latest versionversion-migration— Apply version migrations
False Positives Guide
Some validation warnings are technically “wrong” but acceptable in context.Missing error handling
Missing error handling
When it’s a false positive: Simple workflows where failures are obvious, testing or development workflows, and non-critical notification workflows.When you should fix it: Production workflows handling important data or payments.
No retry logic
No retry logic
When it’s a false positive: APIs with their own built-in retry logic, idempotent operations where double-execution is harmless, and manual trigger workflows run by a human.When you should fix it: Flaky external services in production automation.
Missing rate limiting
Missing rate limiting
When it’s a false positive: Internal APIs with no rate limits, low-volume workflows (few executions per day), and APIs that enforce rate limiting server-side.When you should fix it: Public APIs with strict rate limits and high-volume automated workflows.
Unbounded query
Unbounded query
When it’s a false positive: Small, known-size datasets, aggregation queries (COUNT, SUM) that scan the full table by design, and development/testing environments.When you should fix it: Production queries on large tables.
Workflow Validation
Common Workflow-Level Errors
| Error | Cause | Fix |
|---|---|---|
Connection from 'X' to 'Y' - target node not found | Stale connection to a deleted node | Use cleanStaleConnections operation |
Circular dependency detected: A → B → A | Loop in workflow | Restructure to remove the cycle |
Multiple trigger nodes found | More than one trigger | Remove extra triggers or split into separate workflows |
Node 'X' is not connected to workflow flow | Orphaned node | Connect it or delete it |
Recovery Strategies
- Start Fresh
- Clean Stale Connections
- Auto-Fix
- Binary Search
When: Configuration is severely broken or corrupted.
Profile Selection by Stage
| Development Stage | Recommended Profile |
|---|---|
| Initial editing / exploration | minimal |
| Active development | runtime |
| AI-generated configs | ai-friendly |
| Pre-deployment check | runtime |
| Critical production deployment | strict |
Best Practices
Do
- Validate after every significant change
- Read error messages completely before fixing
- Fix errors one at a time iteratively
- Check the
validfield — don’t assume it passed - Trust auto-sanitization for operator issues
- Use
get_nodewhen the required fields aren’t obvious
Don't
- Skip validation before activation
- Try to fix all errors simultaneously
- Use
strictprofile during development - Manually fix auto-sanitization issues
- Deploy with unresolved
errorseverity issues - Ignore all warnings (some are genuinely important)