{"record":{"id":"73ae6e5faa777501","repo":"kestra-io/kestra","slug":"trigger-interval-duration-too-large","errorCode":null,"errorMessage":"Trigger interval duration too large '{}'","messagePattern":"Trigger interval duration too large '(.+?)'","errorType":"validation","errorClass":"InvalidTriggerConfigurationException","httpStatus":null,"severity":"error","filePath":"core/src/main/java/io/kestra/core/models/triggers/PollingTriggerInterface.java","lineNumber":73,"sourceCode":"    /**\n     * Compute the next evaluation date of the trigger: by default, it uses the current date and the interval.\n     * Schedulable triggers must override this method as it's used to init them when there is no evaluation date.\n     */\n    default ZonedDateTime nextEvaluationDate() throws InvalidTriggerConfigurationException {\n        return computeNextEvaluationDate();\n    }\n\n    /**\n     * computes the next evaluation date using the configured interval.\n     * Throw InvalidTriggerConfigurationException, if the interval causes date overflow.\n     */\n    private ZonedDateTime computeNextEvaluationDate() throws InvalidTriggerConfigurationException {\n        Duration interval = this.getInterval();\n\n        try {\n            return SchedulerClock.now().plus(interval);\n        } catch (DateTimeException | ArithmeticException e) {\n            throw new InvalidTriggerConfigurationException(\"Trigger interval duration too large '\" + interval + \"'\", e);\n        }\n    }\n}\n","sourceCodeStart":55,"sourceCodeEnd":77,"githubUrl":"https://github.com/kestra-io/kestra/blob/823fada9274c4f9c251ea0a516460a4f7d958032/core/src/main/java/io/kestra/core/models/triggers/PollingTriggerInterface.java#L55-L77","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":"# before\ntriggers:\n  - id: poll\n    type: io.kestra.plugin.core.trigger.Polling\n    interval: PT1000000000H\n# InvalidTriggerConfigurationException\n\n# after\ntriggers:\n  - id: poll\n    type: io.kestra.plugin.core.trigger.Polling\n    interval: PT60S","handlingStrategy":"validation","validationCode":"Duration interval = trigger.getInterval();\nDuration MAX = Duration.ofDays(365 * 10);\nif (interval.compareTo(MAX) > 0) {\n    throw new InvalidTriggerConfigurationException(\"Trigger interval too large: \" + interval);\n}","typeGuard":null,"tryCatchPattern":"try {\n    trigger.nextEvaluationDate();\n} catch (InvalidTriggerConfigurationException e) {\n    log.error(\"Trigger interval is invalid/too large: {}\", e.getMessage());\n}","preventionTips":["Bound trigger intervals to a sane maximum in flow validation.","Review Pebble-rendered durations for runaway magnitudes."],"tags":["trigger","validation","duration","configuration","scheduler"],"backgroundTag":null,"analyzedSha":"823fada9274c4f9c251ea0a516460a4f7d958032","analyzedAt":"2026-08-14T06:15:17.947Z","schemaVersion":2},"datasetVersion":"2026-08-14T10:17:34.591Z"}