kestra-io/kestra · error · InvalidTriggerConfigurationException

Trigger interval duration too large '{}'

Error message

Trigger interval duration too large '{}'

What it means

Thrown by PollingTriggerInterface.computeNextEvaluationDate() when adding the configured interval to the current scheduler time overflows the ZonedDateTime range (DateTimeException) or the Duration arithmetic overflows (ArithmeticException). This signals an unreasonably large interval value — e.g., a Duration of hundreds of years — that cannot represent a valid future evaluation instant. Wrapped in InvalidTriggerConfigurationException.

Source

Thrown at core/src/main/java/io/kestra/core/models/triggers/PollingTriggerInterface.java:73

    /**
     * Compute the next evaluation date of the trigger: by default, it uses the current date and the interval.
     * Schedulable triggers must override this method as it's used to init them when there is no evaluation date.
     */
    default ZonedDateTime nextEvaluationDate() throws InvalidTriggerConfigurationException {
        return computeNextEvaluationDate();
    }

    /**
     * computes the next evaluation date using the configured interval.
     * Throw InvalidTriggerConfigurationException, if the interval causes date overflow.
     */
    private ZonedDateTime computeNextEvaluationDate() throws InvalidTriggerConfigurationException {
        Duration interval = this.getInterval();

        try {
            return SchedulerClock.now().plus(interval);
        } catch (DateTimeException | ArithmeticException e) {
            throw new InvalidTriggerConfigurationException("Trigger interval duration too large '" + interval + "'", e);
        }
    }
}

View on GitHub (pinned to 823fada927)

Solutions

  1. Set the interval to a realistic value (seconds to hours range).
  2. Validate the interval Duration against an upper bound before configuring the trigger.
  3. Check any Pebble/variable that feeds the interval for unexpected magnitudes.

Example fix

# before
triggers:
  - id: poll
    type: io.kestra.plugin.core.trigger.Polling
    interval: PT1000000000H
# InvalidTriggerConfigurationException

# after
triggers:
  - id: poll
    type: io.kestra.plugin.core.trigger.Polling
    interval: PT60S
Defensive patterns

Strategy: validation

Validate before calling

Duration interval = trigger.getInterval();
Duration MAX = Duration.ofDays(365 * 10);
if (interval.compareTo(MAX) > 0) {
    throw new InvalidTriggerConfigurationException("Trigger interval too large: " + interval);
}

Try / catch

try {
    trigger.nextEvaluationDate();
} catch (InvalidTriggerConfigurationException e) {
    log.error("Trigger interval is invalid/too large: {}", e.getMessage());
}

Prevention

When it happens

Trigger: A trigger's interval is set to an enormous ISO-8601 duration like PT1000000H or P1000Y; interval is computed from a variable that yields a runaway value; a typo inflates the duration.

Common situations: Misconfigured interval in YAML; a Pebble expression for interval resolves to a malformed duration string that parses to a huge value; copy-paste of a duration with a wrong unit.

Related errors


AI-assisted analysis of kestra-io/kestra@823fada927 (2026-08-14). Data as JSON: /api/errors/73ae6e5faa777501. Report an issue: GitHub.