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
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
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
Recovery Strategies
- Start Fresh
- Clean Stale Connections
- Auto-Fix
- Binary Search
When: Configuration is severely broken or corrupted.
Profile Selection by Stage
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)