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
- Set the interval to a realistic value (seconds to hours range).
- Validate the interval Duration against an upper bound before configuring the trigger.
- 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
- Bound trigger intervals to a sane maximum in flow validation.
- Review Pebble-rendered durations for runaway magnitudes.
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
- Failed to create %s '%s'. Error: %s
- Failed to validate configuration for %s '%s'. Error: %s
- Missing required options '--plugins' or environment variable
- Missing required options '--plugins' or environment variable
- Tenant id can only be 'main'
AI-assisted analysis of kestra-io/kestra@823fada927 (2026-08-14).
Data as JSON: /api/errors/73ae6e5faa777501.
Report an issue: GitHub.