Skip to main content
Version: 2.5

Diagnostics and Troubleshooting

Start with the Form Designer's validation message. For a live form, the Form Runtime Debugger shows the executed effects, field state, and recent failures.

Designer Validation and Diagnostics

DiagnosticResult
$value read not covered by listenDependency warning. Add the path if its change should rerun the effect.
Field dependency cycleWarning. Saving remains possible.
$row prefix is not an arrayE_LISTEN_ROW_SCOPE_INVALID; saving is blocked.
One effect mixes $row array scopesE_LISTEN_ROW_SCOPE_MISMATCH; saving is blocked.
One path uses $row for multiple array levelsE_ROW_DEPTH_UNSUPPORTED; saving is blocked.
Direct or indirect runEffect recursionError; saving is blocked.
Invoked effect without an IDSchema validation error.
Duplicate invoked-effect IDSchema validation error.
Missing, ambiguous, or non-invoked runEffect targetSchema validation error.
Invalid ${...} syntaxJEXL validation error.

The diagram displays field and invocation cycles. The linear Effects editor also groups missing-listen dependency warnings.

Runtime Limitations

  • Effects are defined at the root schema level.
  • field, from, and to are literal paths and cannot be calculated. They support one $row placeholder but not JEXL such as $event.indexes[0].
  • One $row scopes an effect to one array level. A single path cannot address multiple nested array levels with repeated $row placeholders.
  • Widget-event objectPointer values identify positions and must be remapped after structural schema changes; use the Form Designer for this.
  • Nested script actions inside successDo and errorDo are blocked.

Troubleshooting

Runtime logging

Guardrail and execution failures are always reported as console warnings or errors. Detailed per-effect traces are emitted only when runtime effect logging is enabled. Representative messages include:

[FluentEffects] Max depth reached, stopping execution
[FluentEffects] Execution depth warning
[FluentEffects] Possible infinite loop detected: ...
[FluentEffects] Control not found for set action: ...
[FluentExpressionRuntimeService] evaluation error: ...
[FluentScriptEffects] Script executed successfully
[FluentScriptEffects] Script execution failed

Cycle errors include the cascade depth and executionPath, which identifies the sequence of effect IDs that led to the guardrail.

The effect does not run

  • Confirm that it is not disabled.
  • For a value-change effect, confirm that listen contains the value that actually changed.
  • For a widget event, confirm the selected widget source and event name.
  • Remember that the initial form snapshot is only a baseline unless runOnInitialization is enabled.

A field is not found

Use a literal dot path such as customer.address.street. Remove $value, ${...}, or JSON Pointer slashes from action targets.

A condition looks truthy but does not run

when must evaluate to boolean true. Inspect whether the expression returns a string, number, object, or missing value instead.

A datasource expression does not resolve

Confirm that the datasource declares a supported effect mode. For an identifiedPack, read its settled result from .data.

A script result is missing in an invoked effect

$response does not cross an invocation boundary. Map the required value into runEffect.inputs and read it from $input in the invoked effect.