LoopUntil​Loop​Until

Run a list of tasks repeatedly until the expected condition is met.

Use this task if your workflow requires blocking calls polling for a job to finish or for some external API to return a specific HTTP response.

You can access the outputs of the nested tasks in the condition property. The condition is evaluated after all nested task runs finish.

yaml
type: "io.kestra.plugin.core.flow.LoopUntil"

Run a task until it returns a specific value. Note how you don't need to take care of incrementing the iteration count. The task will loop and keep track of the iteration outputs behind the scenes — you only need to specify the exit condition for the loop.

yaml
id: loop_until
namespace: company.team

tasks:
  - id: loop
    type: io.kestra.plugin.core.flow.LoopUntil
    condition: "{{ outputs.return.value == '4' }}"
    tasks:
      - id: return
        type: io.kestra.plugin.core.debug.Return
        format: "{{ outputs.loop.iterationCount }}"
Properties

The condition expression that should evaluate to true or false.

Boolean coercion allows 0, -0, null and '' to evaluate to false; all other values will evaluate to true.

SubType
Default { "interval": "PT1M" }

Check the frequency configuration.

SubType

List of tasks to run if any tasks failed on this FlowableTask.

Default false

If set to true, the task run will end in a failed state once the maxIterations or maxDuration are reached.

SubType
Default PT1M
Format duration

Interval between each iteration.

Format duration

Maximum duration of the task.

If not set, defines an unlimited maximum duration of iterations.

Maximum count of iterations.

If not set, defines an unlimited number of iterations.