Skip to main content

Release Notes

Unreleased — collection and literal validation​

  • Fixed empty Default Output Entries under n8n's missing-parameter behavior. Manual tables without defaults, JSON embedded defaults, and XML tables without configured defaults now evaluate matching and nonmatching items correctly. Collection objects are read with defined fallbacks.
  • Malformed collection containers, unexpected collection options, non-object rows and nonstring text fields now fail with collection/row context instead of silently dropping entries, widening a rule to a wildcard, or throwing an unhelpful TypeError. Correct the affected n8n collection to its documented wrapper and row shape; optional empty collections remain valid.
  • Comparison operands, both range bounds and constructor arguments now enforce the supported literal grammar. Expressions such as != foo(bar), not(> foo(bar)), [1..foo(bar)], date(foo(bar)), time(["09:00"]) and date("2026", 1, 1) are rejected when evaluated, including inside lists and negation. Previously some of these could silently miss or select a rule. Quote function-like text when it is intended as data, for example "foo(bar)".
  • Date/time constructors remain wrappers around one supported quoted or bare scalar literal; this includes date(2026-01-01). Nested constructors, multiple arguments and computations are unsupported. Syntactically valid but incomparable operands still produce ordinary nonmatches for ordered comparisons/ranges. Existing equality coercion, inequality and not() behavior are preserved.
  • Range splitting now respects quoted .. text, escaped quotes/backslashes and constructor wrappers in either bound. For input 7, ["a..b"..10] returns false and not([1.."a..b"]) returns true instead of throwing. Empty bounds, extra unquoted range delimiters and malformed literals still reject; quoted delimiter text in a list remains literal data.
  • Expression errors now include the one-based rule number and input name. Continue On Fail still emits a paired error item and proceeds after per-item errors; malformed shared table definitions still fail before item evaluation.

Serialized node/property identifiers and successful output shapes are unchanged. Default precedence and source-switch fallback behavior are preserved. FIRST still short-circuits later rules, and output literals are parsed only for matching rules; this change does not eagerly validate later expressions or add full FEEL support.