Elasticsearch Version
Latest main branch
Installed Plugins
No response
Java Version
bundled
OS Version
OSX
Problem Description
Even though this is an invalid request, we shouldn't trip an assertion, and we shouldn't return a cryptic exception.
Steps to Reproduce
First, create a data stream:
POST /logs-foo-bar/_doc
{
"@timestamp": "2024-01-01",
"message": "aoeu aoeu aoeu"
}
Then, try to index a doc, but accidentally add …/_bulk to the endpoint:
POST /logs-foo-bar/_doc/_bulk
{
"@timestamp": "2024-01-01",
"message": "aoeu aoeu aoeu"
}
Logs (if relevant)
ES running in dev mode (assertions enabled) will then crash with:
[2025-01-23T09:44:59,734][ERROR][o.e.ExceptionsHelper ] [runTask-0] fatal error java.lang.AssertionError: null
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.ExceptionsHelper.lambda$maybeDieOnAnotherThread$4(ExceptionsHelper.java:448)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.ExceptionsHelper.maybeDieOnAnotherThread(ExceptionsHelper.java:438)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.exceptionCaught(Netty4HttpPipeliningHandler.java:499)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:447)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4LeakDetectionHandler.channelRead(Netty4LeakDetectionHandler.java:38)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.codec@4.1.115.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:107)
at io.netty.codec@4.1.115.Final/io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:120)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpContentSizeHandler.handleRequest(Netty4HttpContentSizeHandler.java:150)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpContentSizeHandler.channelRead(Netty4HttpContentSizeHandler.java:106)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpAggregator.channelRead(Netty4HttpAggregator.java:52)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.codec@4.1.115.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:107)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.forwardData(Netty4HttpHeaderValidator.java:213)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.forwardFullRequest(Netty4HttpHeaderValidator.java:156)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator$1.lambda$onResponse$0(Netty4HttpHeaderValidator.java:128)
at io.netty.common@4.1.115.Final/io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
at io.netty.common@4.1.115.Final/io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
at io.netty.common@4.1.115.Final/io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
at io.netty.transport@4.1.115.Final/io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566)
at io.netty.common@4.1.115.Final/io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.common@4.1.115.Final/io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at java.base/java.lang.Thread.run(Thread.java:1583)
[2025-01-23T09:44:59,735][ERROR][o.e.b.ElasticsearchUncaughtExceptionHandler] [runTask-0] fatal error in thread [elasticsearch-error-rethrower], exiting java.lang.AssertionError
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.http.HttpBody.asFull(HttpBody.java:42)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.RestRequest.content(RestRequest.java:313)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.RestRequest.requiredContent(RestRequest.java:341)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.action.document.RestIndexAction.prepareRequest(RestIndexAction.java:109)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:99)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.RestController$1.onResponse(RestController.java:466)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.RestController$1.onResponse(RestController.java:460)
at org.elasticsearch.security@9.0.0-SNAPSHOT/org.elasticsearch.xpack.security.rest.SecurityRestFilter.doHandleRequest(SecurityRestFilter.java:89)
at org.elasticsearch.security@9.0.0-SNAPSHOT/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$intercept$0(SecurityRestFilter.java:81)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:257)
at org.elasticsearch.security@9.0.0-SNAPSHOT/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.lambda$authenticateAndAttachToContext$3(SecondaryAuthenticator.java:99)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:247)
at org.elasticsearch.security@9.0.0-SNAPSHOT/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticate(SecondaryAuthenticator.java:109)
at org.elasticsearch.security@9.0.0-SNAPSHOT/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticateAndAttachToContext(SecondaryAuthenticator.java:90)
at org.elasticsearch.security@9.0.0-SNAPSHOT/org.elasticsearch.xpack.security.rest.SecurityRestFilter.intercept(SecurityRestFilter.java:75)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:460)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.RestController.tryAllHandlers(RestController.java:624)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:307)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.http.AbstractHttpServerTransport.dispatchRequest(AbstractHttpServerTransport.java:488)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.http.AbstractHttpServerTransport.handleIncomingRequest(AbstractHttpServerTransport.java:584)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.http.AbstractHttpServerTransport.incomingRequest(AbstractHttpServerTransport.java:461)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.handlePipelinedRequest(Netty4HttpPipeliningHandler.java:170)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.channelRead(Netty4HttpPipeliningHandler.java:149)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4LeakDetectionHandler.channelRead(Netty4LeakDetectionHandler.java:38)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.codec@4.1.115.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:107)
at io.netty.codec@4.1.115.Final/io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:120)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpContentSizeHandler.handleRequest(Netty4HttpContentSizeHandler.java:150)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpContentSizeHandler.channelRead(Netty4HttpContentSizeHandler.java:106)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpAggregator.channelRead(Netty4HttpAggregator.java:52)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.codec@4.1.115.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:107)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.forwardData(Netty4HttpHeaderValidator.java:213)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.forwardFullRequest(Netty4HttpHeaderValidator.java:156)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator$1.lambda$onResponse$0(Netty4HttpHeaderValidator.java:128)
at io.netty.common@4.1.115.Final/io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
at io.netty.common@4.1.115.Final/io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
at io.netty.common@4.1.115.Final/io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
at io.netty.transport@4.1.115.Final/io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566)
at io.netty.common@4.1.115.Final/io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.common@4.1.115.Final/io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at java.base/java.lang.Thread.run(Thread.java:1583)
[2025-01-23T09:44:59,735][WARN ][o.e.h.AbstractHttpServerTransport] [runTask-0] caught exception while handling client http traffic, closing connection Netty4HttpChannel{localAddress=/[0:0:0:0:0:0:0:1]:9200, remoteAddress=/[0:0:0:0:0:0:0:1]:51276} java.lang.Exception: java.lang.AssertionError
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.exceptionCaught(Netty4HttpPipeliningHandler.java:504)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:447)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4LeakDetectionHandler.channelRead(Netty4LeakDetectionHandler.java:38)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.codec@4.1.115.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:107)
at io.netty.codec@4.1.115.Final/io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:120)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpContentSizeHandler.handleRequest(Netty4HttpContentSizeHandler.java:150)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpContentSizeHandler.channelRead(Netty4HttpContentSizeHandler.java:106)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpAggregator.channelRead(Netty4HttpAggregator.java:52)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.codec@4.1.115.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:107)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.forwardData(Netty4HttpHeaderValidator.java:213)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.forwardFullRequest(Netty4HttpHeaderValidator.java:156)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator$1.lambda$onResponse$0(Netty4HttpHeaderValidator.java:128)
at io.netty.common@4.1.115.Final/io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
at io.netty.common@4.1.115.Final/io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
at io.netty.common@4.1.115.Final/io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
at io.netty.transport@4.1.115.Final/io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566)
at io.netty.common@4.1.115.Final/io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.common@4.1.115.Final/io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.AssertionError
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.http.HttpBody.asFull(HttpBody.java:42)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.RestRequest.content(RestRequest.java:313)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.RestRequest.requiredContent(RestRequest.java:341)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.action.document.RestIndexAction.prepareRequest(RestIndexAction.java:109)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:99)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.RestController$1.onResponse(RestController.java:466)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.RestController$1.onResponse(RestController.java:460)
at org.elasticsearch.security@9.0.0-SNAPSHOT/org.elasticsearch.xpack.security.rest.SecurityRestFilter.doHandleRequest(SecurityRestFilter.java:89)
at org.elasticsearch.security@9.0.0-SNAPSHOT/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$intercept$0(SecurityRestFilter.java:81)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:257)
at org.elasticsearch.security@9.0.0-SNAPSHOT/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.lambda$authenticateAndAttachToContext$3(SecondaryAuthenticator.java:99)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:247)
at org.elasticsearch.security@9.0.0-SNAPSHOT/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticate(SecondaryAuthenticator.java:109)
at org.elasticsearch.security@9.0.0-SNAPSHOT/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticateAndAttachToContext(SecondaryAuthenticator.java:90)
at org.elasticsearch.security@9.0.0-SNAPSHOT/org.elasticsearch.xpack.security.rest.SecurityRestFilter.intercept(SecurityRestFilter.java:75)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:460)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.RestController.tryAllHandlers(RestController.java:624)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:307)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.http.AbstractHttpServerTransport.dispatchRequest(AbstractHttpServerTransport.java:488)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.http.AbstractHttpServerTransport.handleIncomingRequest(AbstractHttpServerTransport.java:584)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.http.AbstractHttpServerTransport.incomingRequest(AbstractHttpServerTransport.java:461)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.handlePipelinedRequest(Netty4HttpPipeliningHandler.java:170)
at org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.channelRead(Netty4HttpPipeliningHandler.java:149)
at io.netty.transport@4.1.115.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
... 31 more
If you do NOT have assertions enabled, you get this response:
{
"error" : {
"root_cause" : [
{
"type" : "class_cast_exception",
"reason" : "class org.elasticsearch.http.netty4.Netty4HttpRequestBodyStream cannot be cast to class org.elasticsearch.http.HttpBody$Full (org.elasticsearch.http.netty4.Netty4HttpRequestBodyStream is in module org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT of loader jdk.internal.loader.Loader @3cd206b5; org.elasticsearch.http.HttpBody$Full is in module org.elasticsearch.server@9.0.0-SNAPSHOT of loader 'app')"
}
],
"type" : "class_cast_exception",
"reason" : "class org.elasticsearch.http.netty4.Netty4HttpRequestBodyStream cannot be cast to class org.elasticsearch.http.HttpBody$Full (org.elasticsearch.http.netty4.Netty4HttpRequestBodyStream is in module org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT of loader jdk.internal.loader.Loader @3cd206b5; org.elasticsearch.http.HttpBody$Full is in module org.elasticsearch.server@9.0.0-SNAPSHOT of loader 'app')"
},
"status" : 500
}
And this in the logs:
[2025-01-23T10:36:14,458][WARN ][r.suppressed ] [Pelennor] path: /logs-foo-bar/_doc/_bulk, params: {pretty=true, index=logs-foo-bar, id=_bulk}, status: 500java.lang.ClassCastException: class org.elasticsearch.http.netty4.Netty4HttpRequestBodyStream cannot be cast to class org.elasticsearch.http.HttpBody$Full (org.elasticsearch.http.netty4.Netty4HttpRequestBodyStream is in module org.elasticsearch.transport.netty4@9.0.0-SNAPSHOT of loader jdk.internal.loader.Loader @3cd206b5; org.elasticsearch.http.HttpBody$Full is in module org.elasticsearch.server@9.0.0-SNAPSHOT of loader 'app')
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.http.HttpBody.asFull(HttpBody.java:43)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.RestRequest.content(RestRequest.java:313)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.RestRequest.requiredContent(RestRequest.java:341)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.action.document.RestIndexAction.prepareRequest(RestIndexAction.java:109)
at org.elasticsearch.server@9.0.0-SNAPSHOT/org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:99)
Elasticsearch Version
Latest
mainbranchInstalled Plugins
No response
Java Version
bundled
OS Version
OSX
Problem Description
Even though this is an invalid request, we shouldn't trip an assertion, and we shouldn't return a cryptic exception.
Steps to Reproduce
First, create a data stream:
Then, try to index a doc, but accidentally add
…/_bulkto the endpoint:Logs (if relevant)
ES running in dev mode (assertions enabled) will then crash with:
If you do NOT have assertions enabled, you get this response:
And this in the logs: