LoopUntil task changed default values for checkFrequency

Overview

The default behavior of the LoopUntil core task has changed as follows:

{ "maxIterations": null, "maxDuration": null, "interval": "PT1M" }

Before

Previously, LoopUntil capped executions at 100 iterations and 1 hour duration (maxIterations: 100, maxDuration: PT1H, interval: PT1S). This was intended to prevent runaway loops from impacting instance stability, especially with frequent (1s) intervals.

After

What’s changed:

  • The default configuration no longer enforces arbitrary limits on iterations and duration.
  • The new default uses a 1-minute interval (PT1M), which greatly reduces the risk of instance performance issues, even with no iteration or duration limits.

Backwards compatibility: If you want to retain the previous default limits to prevent potentially long-running loops, add the following to your global plugin defaults:

pluginDefaults:
- forced: true
type: io.kestra.plugin.core.flow.LoopUntil
values:
checkFrequency:
maxIterations: 100
maxDuration: PT1H
interval: PT1S

Adding that plugin default restores the earlier behavior and prevents any breaking change for your existing flows.