A configured expression must be valid for its engine at save
An expression that cannot parse can only fail once the workflow is already running. Catching it at save turns a runtime failure into an editing error.
The rule
Normative: this is the rule
- Every expression carried in a node's configuration must pass its engine's validation when the workflow is saved.
- A failure is refused with
R11_EXPRESSION_INVALID, and the error names the node, the config key, the engine and the expression. - The expressions checked are the ones the node types declare as expression-bearing: a data extractor's
path, thevalueof each dynamic output of a data mapper, the sources of a data shaper'smapping(with reserved source values such as a literal or a now marker skipped, and nested_sourceand_eachsources walked), and a prompt template'stemplate. - An empty expression is always valid.
- An expression naming an engine the implementation does not know is not reported here; R6's
enumcheck on the engine key owns that error. - An engine whose validation raises rather than returning a verdict is treated as a rejection, yielding one
R11_EXPRESSION_INVALIDfor that expression; the failure is never propagated, so a misbehaving engine still produces a refusal against the workflow and never a server error.
Why
Recorded under OPEN-3.
Rule identifiers are permanent and are never renumbered. Each implementation publishes its own standing against these rules; this specification does not.spec 1.0-draft · R11 · changed in spec 1.0