Skip to main content
Records an anomaly when traversal reaches it. Passes the input value through unchanged so the node can sit inline between two other nodes.

Inputs

  • Data in — value to pass through.
  • Entity ID — optional Twine-internal UUID of the entity the anomaly is about. Populates the row’s entity_id column for the auto-resolve sweep and rich entity rendering in the UI.
  • External ID — optional source-system identifier for the entity. Always populate this in convert_from_system flows: at that pipeline stage, the only id available is the remote one.
  • Params — one input per configured param (or, for a catalog code with structured fields, one per field). Wire anything: the value is captured under the param’s name and can be referenced in the message as {name}.

Outputs

  • Result — the input value, unchanged.

Schema

  • Code — picked from the anomaly catalog, or a custom identifier. generic_error is the everyday choice: your own message and params. A catalog code with structured fields (for example missing_or_malformed_field_on_employee) takes its fields as params and persists as that anomaly type, with its own title.
  • Severity — info / warning / critical. Influences how consumers triage and surface the anomaly.
  • Domain — what kind of entity the anomaly is about (employee by default). Free-form codes only; a catalog code knows its domain.
  • Message — human-readable description shown to the customer, for free-form codes. {name} is replaced by the param of that name; {entity_id} and {external_id} by the id ports; in a flow, {assign} / {assign.nested.path} by the run’s assigns (same syntax as Flow Log). A placeholder nothing resolves stays visible as written, so a missing value is never silently blank.
  • Params — the named values to capture. Each is an input port; in a flow a param can instead name an assign path to read when its port is unwired. Discriminates (on by default) makes the value part of the anomaly’s identity: the same node firing with a different value is a different anomaly. Turn it off for values that vary run to run (a total, a date) so they don’t split one problem into many rows.
  • System integration — flow mode only: the tenant integration the persisted anomaly row is scoped to. Required when the node runs in a flow; ignored in data (property-mapping) mode.
Renaming or removing a param removes its port; anything wired to that port is disconnected.

Ports