-
Notifications
You must be signed in to change notification settings - Fork 25.6k
Open
Labels
:Analytics/ES|QLAKA ESQLAKA ESQL>bugTeam:AnalyticsMeta label for analytical engine team (ESQL/Aggs/Geo)Meta label for analytical engine team (ESQL/Aggs/Geo)
Description
in one deployment we have observed a search request with a (probably) badly formatted date to result into a 500 status exception.
The execption was Invalid date 'February 29' as '2026' is not a leap year and that resulted in a INTERNAL_SERVER_ERROR.
This either should be a 4xx or we have a bug in date parsing.
Full stack trace:
java.time.DateTimeException: Invalid date 'February 29' as '2026' is not a leap year
at java.base/java.time.LocalDate.create(LocalDate.java:459)
at java.base/java.time.LocalDate.of(LocalDate.java:277)
at [email protected]/org.elasticsearch.common.time.DateFormatters$1.queryFrom(DateFormatters.java:2198)
at [email protected]/org.elasticsearch.common.time.DateFormatters$1.queryFrom(DateFormatters.java:2190)
at java.base/java.time.format.Parsed.query(Parsed.java:247)
at [email protected]/org.elasticsearch.common.time.DateFormatters.from(DateFormatters.java:2135)
at [email protected]/org.elasticsearch.common.time.DateFormatters.from(DateFormatters.java:2118)
at [email protected]/org.elasticsearch.common.time.DateFormatter.parseMillis(DateFormatter.java:40)
at org.elasticsearch.xpack.esql.type.EsqlDataTypeConverter.dateTimeToLong(EsqlDataTypeConverter.java:623)
at org.elasticsearch.xpack.esql.expression.function.scalar.date.DateParse.process(DateParse.java:222)
at org.elasticsearch.xpack.esql.expression.function.scalar.date.DateParseConstantEvaluator.eval(DateParseConstantEvaluator.java:100)
at org.elasticsearch.xpack.esql.expression.function.scalar.date.DateParseConstantEvaluator.eval(DateParseConstantEvaluator.java:56)
at org.elasticsearch.xpack.esql.evaluator.mapper.EvaluatorMapper.fold(EvaluatorMapper.java:161)
at org.elasticsearch.xpack.esql.expression.function.scalar.EsqlScalarFunction.fold(EsqlScalarFunction.java:39)
at org.elasticsearch.xpack.esql.core.expression.Literal.of(Literal.java:201)
at org.elasticsearch.xpack.esql.optimizer.rules.logical.ConstantFolding.rule(ConstantFolding.java:22)
at org.elasticsearch.xpack.esql.optimizer.rules.logical.OptimizerRules$OptimizerExpressionRule.lambda$apply$0(OptimizerRules.java:62)
at org.elasticsearch.xpack.esql.core.tree.Node.lambda$transformDown$7(Node.java:221)
at org.elasticsearch.xpack.esql.core.tree.Node.transformDown(Node.java:214)
at org.elasticsearch.xpack.esql.core.tree.Node.lambda$transformDown$6(Node.java:216)
at org.elasticsearch.xpack.esql.core.tree.Node.transformChildren(Node.java:256)
at org.elasticsearch.xpack.esql.core.tree.Node.transformDown(Node.java:216)
at org.elasticsearch.xpack.esql.core.tree.Node.lambda$transformDown$6(Node.java:216)
at org.elasticsearch.xpack.esql.core.tree.Node.transformChildren(Node.java:256)
at org.elasticsearch.xpack.esql.core.tree.Node.transformDown(Node.java:216)
at org.elasticsearch.xpack.esql.core.tree.Node.transformDown(Node.java:221)
at org.elasticsearch.xpack.esql.plan.QueryPlan.lambda$transformExpressionsDown$9(QueryPlan.java:124)
at org.elasticsearch.xpack.esql.plan.QueryPlan.doTransformExpression(QueryPlan.java:146)
at org.elasticsearch.xpack.esql.plan.QueryPlan.lambda$transformExpressionsDown$10(QueryPlan.java:124)
at org.elasticsearch.xpack.esql.core.tree.NodeInfo.lambda$transform$0(NodeInfo.java:62)
at org.elasticsearch.xpack.esql.core.tree.NodeInfo$3.innerTransform(NodeInfo.java:120)
at org.elasticsearch.xpack.esql.core.tree.NodeInfo.transform(NodeInfo.java:66)
at org.elasticsearch.xpack.esql.core.tree.Node.transformNodeProps(Node.java:306)
at org.elasticsearch.xpack.esql.plan.QueryPlan.lambda$transformExpressionsDown$11(QueryPlan.java:124)
at org.elasticsearch.xpack.esql.core.tree.Node.lambda$transformDown$8(Node.java:226)
at org.elasticsearch.xpack.esql.core.tree.Node.transformDown(Node.java:214)
at org.elasticsearch.xpack.esql.core.tree.Node.lambda$transformDown$6(Node.java:216)
at org.elasticsearch.xpack.esql.core.tree.Node.transformChildren(Node.java:256)
at org.elasticsearch.xpack.esql.core.tree.Node.transformDown(Node.java:216)
at org.elasticsearch.xpack.esql.core.tree.Node.lambda$transformDown$6(Node.java:216)
at org.elasticsearch.xpack.esql.core.tree.Node.transformChildren(Node.java:256)
at org.elasticsearch.xpack.esql.core.tree.Node.transformDown(Node.java:216)
at org.elasticsearch.xpack.esql.core.tree.Node.transformDown(Node.java:226)
at org.elasticsearch.xpack.esql.plan.QueryPlan.transformExpressionsDown(QueryPlan.java:122)
at org.elasticsearch.xpack.esql.optimizer.rules.logical.OptimizerRules$OptimizerExpressionRule.apply(OptimizerRules.java:62)
at org.elasticsearch.xpack.esql.optimizer.rules.logical.OptimizerRules$OptimizerExpressionRule.apply(OptimizerRules.java:44)
at org.elasticsearch.xpack.esql.rule.ParameterizedRuleExecutor.lambda$transform$0(ParameterizedRuleExecutor.java:29)
at org.elasticsearch.xpack.esql.rule.RuleExecutor$Transformation.<init>(RuleExecutor.java:111)
at org.elasticsearch.xpack.esql.rule.RuleExecutor.executeWithInfo(RuleExecutor.java:190)
at org.elasticsearch.xpack.esql.rule.RuleExecutor.execute(RuleExecutor.java:159)
at org.elasticsearch.xpack.esql.optimizer.LogicalPlanOptimizer.optimize(LogicalPlanOptimizer.java:120)
at org.elasticsearch.xpack.esql.session.EsqlSession.optimizedPlan(EsqlSession.java:946)
at org.elasticsearch.xpack.esql.session.EsqlSession$1.lambda$onResponse$1(EsqlSession.java:243)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:261)
at [email protected]/org.elasticsearch.action.support.SubscribableListener$SuccessResult.complete(SubscribableListener.java:406)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.tryComplete(SubscribableListener.java:326)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.addListener(SubscribableListener.java:222)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.lambda$andThen$1(SubscribableListener.java:534)
at [email protected]/org.elasticsearch.action.ActionListener.run(ActionListener.java:465)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.newForked(SubscribableListener.java:138)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.andThen(SubscribableListener.java:534)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.andThen(SubscribableListener.java:489)
at org.elasticsearch.xpack.esql.session.EsqlSession$1.onResponse(EsqlSession.java:242)
at org.elasticsearch.xpack.esql.session.EsqlSession$1.onResponse(EsqlSession.java:222)
at [email protected]/org.elasticsearch.action.support.SubscribableListener$SuccessResult.complete(SubscribableListener.java:406)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.tryComplete(SubscribableListener.java:326)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.setResult(SubscribableListener.java:355)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.onResponse(SubscribableListener.java:262)
at org.elasticsearch.xpack.esql.session.EsqlSession.analyzeWithRetry(EsqlSession.java:886)
at org.elasticsearch.xpack.esql.session.EsqlSession.lambda$resolveIndicesAndAnalyze$13(EsqlSession.java:569)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:261)
at [email protected]/org.elasticsearch.action.support.SubscribableListener$SuccessResult.complete(SubscribableListener.java:406)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.tryComplete(SubscribableListener.java:326)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.setResult(SubscribableListener.java:355)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.onResponse(SubscribableListener.java:262)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations$MappedActionListener.onResponse(ActionListenerImplementations.java:111)
at org.elasticsearch.xpack.esql.inference.InferenceResolver.resolveInferenceIds(InferenceResolver.java:110)
at org.elasticsearch.xpack.esql.inference.InferenceResolver.resolveInferenceIds(InferenceResolver.java:104)
at org.elasticsearch.xpack.esql.inference.InferenceResolver.resolveInferenceIds(InferenceResolver.java:67)
at org.elasticsearch.xpack.esql.session.EsqlSession.lambda$resolveIndicesAndAnalyze$12(EsqlSession.java:566)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:261)
at [email protected]/org.elasticsearch.action.support.SubscribableListener$SuccessResult.complete(SubscribableListener.java:406)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.tryComplete(SubscribableListener.java:326)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.setResult(SubscribableListener.java:355)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.onResponse(SubscribableListener.java:262)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations$MappedActionListener.onResponse(ActionListenerImplementations.java:111)
at org.elasticsearch.xpack.esql.enrich.EnrichPolicyResolver.resolvePolicies(EnrichPolicyResolver.java:120)
at org.elasticsearch.xpack.esql.session.EsqlSession.lambda$resolveIndicesAndAnalyze$11(EsqlSession.java:563)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:261)
at [email protected]/org.elasticsearch.action.support.SubscribableListener$SuccessResult.complete(SubscribableListener.java:406)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.tryComplete(SubscribableListener.java:326)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.setResult(SubscribableListener.java:355)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.onResponse(SubscribableListener.java:262)
at org.elasticsearch.xpack.esql.session.EsqlSession.forAll(EsqlSession.java:987)
at org.elasticsearch.xpack.esql.session.EsqlSession.preAnalyzeLookupIndices(EsqlSession.java:583)
at org.elasticsearch.xpack.esql.session.EsqlSession.lambda$resolveIndicesAndAnalyze$10(EsqlSession.java:561)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:261)
at [email protected]/org.elasticsearch.action.support.SubscribableListener$SuccessResult.complete(SubscribableListener.java:406)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.tryComplete(SubscribableListener.java:326)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.setResult(SubscribableListener.java:355)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.onResponse(SubscribableListener.java:262)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations$MappedActionListener.onResponse(ActionListenerImplementations.java:111)
at [email protected]/org.elasticsearch.action.support.SubscribableListener$SuccessResult.complete(SubscribableListener.java:406)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.tryComplete(SubscribableListener.java:326)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.setResult(SubscribableListener.java:355)
at [email protected]/org.elasticsearch.action.support.SubscribableListener.onResponse(SubscribableListener.java:262)
at org.elasticsearch.xpack.esql.session.EsqlSession.forAll(EsqlSession.java:987)
at org.elasticsearch.xpack.esql.session.EsqlSession.lambda$forAll$23(EsqlSession.java:985)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:261)
at org.elasticsearch.xpack.esql.session.EsqlSession.lambda$preAnalyzeMainIndices$21(EsqlSession.java:853)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:261)
at org.elasticsearch.xpack.esql.session.IndexResolver.lambda$resolveAsMergedMappingAndRetrieveMinimumVersion$1(IndexResolver.java:138)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:261)
at [email protected]/org.elasticsearch.tasks.TaskManager$1.onResponse(TaskManager.java:228)
at [email protected]/org.elasticsearch.tasks.TaskManager$1.onResponse(TaskManager.java:222)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations$RunBeforeActionListener.onResponse(ActionListenerImplementations.java:350)
at [email protected]/org.elasticsearch.action.support.ContextPreservingActionListener.onResponse(ContextPreservingActionListener.java:33)
at [email protected]/org.elasticsearch.action.ActionListenerImplementations$MappedActionListener.onResponse(ActionListenerImplementations.java:111)
at [email protected]/org.elasticsearch.action.fieldcaps.TransportFieldCapabilitiesAction.mergeIndexResponses(TransportFieldCapabilitiesAction.java:569)
at [email protected]/org.elasticsearch.action.fieldcaps.TransportFieldCapabilitiesAction.lambda$doExecuteForked$8(TransportFieldCapabilitiesAction.java:338)
at [email protected]/org.elasticsearch.core.AbstractRefCounted$1.closeInternal(AbstractRefCounted.java:125)
at [email protected]/org.elasticsearch.core.AbstractRefCounted.decRef(AbstractRefCounted.java:77)
at [email protected]/org.elasticsearch.action.support.RefCountingRunnable.close(RefCountingRunnable.java:113)
at [email protected]/org.elasticsearch.common.util.concurrent.RunOnce.run(RunOnce.java:41)
at [email protected]/org.elasticsearch.action.fieldcaps.RequestDispatcher.innerExecute(RequestDispatcher.java:178)
at [email protected]/org.elasticsearch.action.fieldcaps.RequestDispatcher$1.doRun(RequestDispatcher.java:147)
at [email protected]/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:27)
at [email protected]/org.elasticsearch.action.fieldcaps.TransportFieldCapabilitiesAction$2.onResponse(TransportFieldCapabilitiesAction.java:505)
at [email protected]/org.elasticsearch.action.fieldcaps.TransportFieldCapabilitiesAction$2.onResponse(TransportFieldCapabilitiesAction.java:501)
at [email protected]/org.elasticsearch.common.util.concurrent.AbstractThrottledTaskRunner$1.doRun(AbstractThrottledTaskRunner.java:136)
at [email protected]/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:27)
at [email protected]/org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:35)
at [email protected]/org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:1076)
at [email protected]/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:27)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base/java.lang.Thread.run(Thread.java:1474)
Metadata
Metadata
Assignees
Labels
:Analytics/ES|QLAKA ESQLAKA ESQL>bugTeam:AnalyticsMeta label for analytical engine team (ESQL/Aggs/Geo)Meta label for analytical engine team (ESQL/Aggs/Geo)