Stop

Explicitly terminates the current execution path. Any subsequent nodes on the same branch are not executed.

When to Use

Use Stop when you want to make it clear that execution intentionally ends here — for example, on the false branch of an If node or on the default branch of a Switch.

You do not technically need a Stop node to end a path — an unconnected output handle will stop execution silently. Stop is useful when you want:

  • A visible indicator on the canvas that this path ends intentionally
  • An optional log message recorded in the run when this path is reached

Inputs

HandleTypeDescription
inputanyThe value flowing into this node. Not used for any logic — just signals that this path reached Stop. Required.

Outputs

None. Stop is a terminal node — it ends the execution path and produces no output.

Settings

SettingTypeRequiredDescription
messagestringNoOptional message logged when this stop is reached. Supports template bindings.

Example

Canvas

Handle a failed payment event but ignore all other event types:

Webhook → Switch (input.body.type)
    → invoice.payment_failed → [retry logic]
    → default → Stop (message: "Ignored event type {{ webhook.body.type }}")

Stop settings:

  • Message: Ignored event type {{ webhook.body.type }}

TSL

import webhook from @tensorify/webhook-trigger:4.0.0
import route_event from @tensorify/switch:3.0.0
import retry from @tensorify/http-request:3.0.0
import ignored from @tensorify/stop:3.0.0

node stripe @tensorify/webhook-trigger:4.0.0 {
    provider = "stripe"
    path = "/stripe/events"
    method = "POST"
}

node router @tensorify/switch:3.0.0 {
    condition = "input.body.type"
    cases = ["invoice.payment_failed"]
    matchMode = "exact"
}

node retry_payment @tensorify/http-request:3.0.0 {
    method = "POST"
    url = "https://api.example.com/retry"
    timeout = 30
}

node halt @tensorify/stop:3.0.0 {
    message = "Ignored event type {{ webhook.body.type }}"
}

stripe.payload -> router.input
router."invoice.payment_failed" -> retry_payment.body
router.default -> halt.input

Common Gotchas

  • Stop only terminates the current path. Other parallel branches in the same workflow continue executing.
  • The log message appears in the job detail view for that specific run.
  • An unconnected branch handle stops execution silently — Stop is optional but makes intent visible on the canvas.

See Also

  • If — binary branching
  • Switch — multi-case routing
  • Return — return a value instead of terminating silently
On this page