Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MultiGetAsync does not infer default mapping for index #8168

Closed
deMD opened this issue Apr 25, 2024 · 4 comments · Fixed by #8170
Closed

MultiGetAsync does not infer default mapping for index #8168

deMD opened this issue Apr 25, 2024 · 4 comments · Fixed by #8170
Labels
8.x Relates to 8.x client version Area: Generator Category: Bug

Comments

@deMD
Copy link

deMD commented Apr 25, 2024

Elastic.Clients.Elasticsearch version: 8.13.10

Elasticsearch version: 8.4.1/8.6.1

.NET runtime version: Net 6.0

Description of the problem including expected versus actual behavior:
When calling elasticsearchclient.MultiGetAsync<TDocument>(request, cancellationToken) where the request looks like this:

var request = new MultiGetRequest { Ids = new Ids(new Id[]  { 1 }) };

A 400 Response is returned with the following message:

Elastic.Transport.TransportException: Request failed to execute. Call: Status code 400 from: POST /_mget?pretty=true&error_trace=true. ServerError: Type: action_request_validation_exception Reason: "Validation Failed: 1: index is missing for doc 0;"

Steps to reproduce:

  1. Do above request to an instance of Elasticsearch with an index mapped to TDocument and a document with Id 1
    settings.DefaultMappingFor<TDocument>(x => x.IndexName("my-index"));

Expected behavior
A List with a single item is returned

Provide DebugInformation (if relevant):

Invalid Elasticsearch response built from a unsuccessful (400) low level call on POST: /_mget?pretty=true&error_trace=true
 Exception: Request failed to execute. Call: Status code 400 from: POST /_mget?pretty=true&error_trace=true. ServerError: Type: action_request_validation_exception Reason: "Validation Failed: 1: index is missing for doc 0;"

# Audit trail of this API call:
 - [1] BadResponse: Node: https://elastic:redacted@127.0.0.1:32850/ Took: 00:00:00.0331757
# OriginalException: Elastic.Transport.TransportException: Request failed to execute. Call: Status code 400 from: POST /_mget?pretty=true&error_trace=true. ServerError: Type: action_request_validation_exception Reason: "Validation Failed: 1: index is missing for doc 0;"
# Request:
{
  "ids": [
    1
  ]
}
# Response:
{
  "error" : {
    "root_cause" : [
      {
        "type" : "action_request_validation_exception",
        "reason" : "Validation Failed: 1: index is missing for doc 0;",
        "stack_trace" : "org.elasticsearch.ElasticsearchException$1: Validation Failed: 1: index is missing for doc 0;\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:640)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.ElasticsearchException.generateFailureXContent(ElasticsearchException.java:568)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.rest.RestResponse.build(RestResponse.java:175)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.rest.RestResponse.<init>(RestResponse.java:123)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.rest.RestResponse.<init>(RestResponse.java:102)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.rest.action.RestActionListener.onFailure(RestActionListener.java:55)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.client.internal.node.NodeClient$SafelyWrappedActionListener.onFailure(NodeClient.java:170)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.tasks.TaskManager$1.onFailure(TaskManager.java:217)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:53)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.tasks.TaskManager.registerAndExecute(TaskManager.java:202)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.client.internal.node.NodeClient.executeLocally(NodeClient.java:112)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.client.internal.node.NodeClient.doExecute(NodeClient.java:90)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.client.internal.support.AbstractClient.execute(AbstractClient.java:380)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.client.internal.support.AbstractClient.multiGet(AbstractClient.java:500)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.rest.action.document.RestMultiGetAction.lambda$prepareRequest$0(RestMultiGetAction.java:84)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:103)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.rest.SecurityRestFilter.doHandleRequest(SecurityRestFilter.java:123)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$handleRequest$0(SecurityRestFilter.java:113)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:162)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.lambda$authenticateAndAttachToContext$2(SecondaryAuthenticator.java:84)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:162)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticate(SecondaryAuthenticator.java:94)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticateAndAttachToContext(SecondaryAuthenticator.java:78)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$handleRequest$2(SecurityRestFilter.java:107)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:162)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$MappedActionListener.onResponse(ActionListener.java:127)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$RunBeforeActionListener.onResponse(ActionListener.java:397)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.writeAuthToContext(AuthenticatorChain.java:346)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.finishAuthentication(AuthenticatorChain.java:325)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.maybeLookupRunAsUser(AuthenticatorChain.java:202)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$doAuthenticate$1(AuthenticatorChain.java:121)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:162)\n\tat org.elasticsearch.xcore@8.6.1/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:141)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$4(AuthenticatorChain.java:188)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:162)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.lambda$consumeToken$5(RealmsAuthenticator.java:218)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:162)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.support.ContextPreservingActionListener.onResponse(ContextPreservingActionListener.java:31)\n\tat org.elasticsearch.xcore@8.6.1/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:141)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.lambda$consumeToken$1(RealmsAuthenticator.java:163)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:162)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.lambda$authenticateWithCache$1(CachingUsernamePasswordRealm.java:155)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:162)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.handleCachedAuthentication(CachingUsernamePasswordRealm.java:242)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.lambda$authenticateWithCache$2(CachingUsernamePasswordRealm.java:139)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:162)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.common.util.concurrent.ListenableFuture.notifyListenerDirectly(ListenableFuture.java:113)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.common.util.concurrent.ListenableFuture.addListener(ListenableFuture.java:55)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.authenticateWithCache(CachingUsernamePasswordRealm.java:134)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.authenticate(CachingUsernamePasswordRealm.java:105)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.lambda$consumeToken$4(RealmsAuthenticator.java:147)\n\tat org.elasticsearch.xcore@8.6.1/org.elasticsearch.xpack.core.common.IteratingActionListener.run(IteratingActionListener.java:117)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.consumeToken(RealmsAuthenticator.java:234)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.authenticate(RealmsAuthenticator.java:83)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$5(AuthenticatorChain.java:180)\n\tat org.elasticsearch.xcore@8.6.1/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:135)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$5(AuthenticatorChain.java:158)\n\tat org.elasticsearch.xcore@8.6.1/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:135)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$5(AuthenticatorChain.java:158)\n\tat org.elasticsearch.xcore@8.6.1/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:135)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$5(AuthenticatorChain.java:158)\n\tat org.elasticsearch.xcore@8.6.1/org.elasticsearch.xpack.core.common.IteratingActionListener.run(IteratingActionListener.java:117)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.doAuthenticate(AuthenticatorChain.java:136)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.authenticateAsync(AuthenticatorChain.java:95)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticationService.authenticate(AuthenticationService.java:149)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticationService.authenticate(AuthenticationService.java:127)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.rest.SecurityRestFilter.handleRequest(SecurityRestFilter.java:101)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:398)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.rest.RestController.tryAllHandlers(RestController.java:532)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:313)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.http.AbstractHttpServerTransport.dispatchRequest(AbstractHttpServerTransport.java:379)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.http.AbstractHttpServerTransport.handleIncomingRequest(AbstractHttpServerTransport.java:460)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.http.AbstractHttpServerTransport.incomingRequest(AbstractHttpServerTransport.java:353)\n\tat org.elasticsearch.transport.netty4@8.6.1/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.handlePipelinedRequest(Netty4HttpPipeliningHandler.java:128)\n\tat org.elasticsearch.transport.netty4@8.6.1/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.channelRead(Netty4HttpPipeliningHandler.java:118)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\tat io.netty.codec@4.1.84.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\tat io.netty.codec@4.1.84.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\tat io.netty.codec@4.1.84.Final/io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:336)\n\tat io.netty.codec@4.1.84.Final/io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:308)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\tat io.netty.codec@4.1.84.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\tat io.netty.handler@4.1.84.Final/io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1373)\n\tat io.netty.handler@4.1.84.Final/io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1236)\n\tat io.netty.handler@4.1.84.Final/io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1285)\n\tat io.netty.codec@4.1.84.Final/io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:519)\n\tat io.netty.codec@4.1.84.Final/io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:458)\n\tat io.netty.codec@4.1.84.Final/io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:280)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:689)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:652)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n\tat io.netty.common@4.1.84.Final/io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n\tat io.netty.common@4.1.84.Final/io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n\tat java.base/java.lang.Thread.run(Thread.java:1589)\nCaused by: org.elasticsearch.action.ActionRequestValidationException: Validation Failed: 1: index is missing for doc 0;\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ValidateActions.addValidationError(ValidateActions.java:15)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.get.MultiGetRequest.validate(MultiGetRequest.java:312)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:45)\n\t... 107 more\n"
      }
    ],
    "type" : "action_request_validation_exception",
    "reason" : "Validation Failed: 1: index is missing for doc 0;",
    "stack_trace" : "org.elasticsearch.action.ActionRequestValidationException: Validation Failed: 1: index is missing for doc 0;\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ValidateActions.addValidationError(ValidateActions.java:15)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.get.MultiGetRequest.validate(MultiGetRequest.java:312)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:45)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.tasks.TaskManager.registerAndExecute(TaskManager.java:202)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.client.internal.node.NodeClient.executeLocally(NodeClient.java:112)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.client.internal.node.NodeClient.doExecute(NodeClient.java:90)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.client.internal.support.AbstractClient.execute(AbstractClient.java:380)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.client.internal.support.AbstractClient.multiGet(AbstractClient.java:500)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.rest.action.document.RestMultiGetAction.lambda$prepareRequest$0(RestMultiGetAction.java:84)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:103)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.rest.SecurityRestFilter.doHandleRequest(SecurityRestFilter.java:123)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$handleRequest$0(SecurityRestFilter.java:113)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:162)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.lambda$authenticateAndAttachToContext$2(SecondaryAuthenticator.java:84)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:162)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticate(SecondaryAuthenticator.java:94)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticateAndAttachToContext(SecondaryAuthenticator.java:78)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$handleRequest$2(SecurityRestFilter.java:107)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:162)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$MappedActionListener.onResponse(ActionListener.java:127)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$RunBeforeActionListener.onResponse(ActionListener.java:397)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.writeAuthToContext(AuthenticatorChain.java:346)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.finishAuthentication(AuthenticatorChain.java:325)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.maybeLookupRunAsUser(AuthenticatorChain.java:202)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$doAuthenticate$1(AuthenticatorChain.java:121)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:162)\n\tat org.elasticsearch.xcore@8.6.1/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:141)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$4(AuthenticatorChain.java:188)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:162)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.lambda$consumeToken$5(RealmsAuthenticator.java:218)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:162)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.support.ContextPreservingActionListener.onResponse(ContextPreservingActionListener.java:31)\n\tat org.elasticsearch.xcore@8.6.1/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:141)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.lambda$consumeToken$1(RealmsAuthenticator.java:163)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:162)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.lambda$authenticateWithCache$1(CachingUsernamePasswordRealm.java:155)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:162)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.handleCachedAuthentication(CachingUsernamePasswordRealm.java:242)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.lambda$authenticateWithCache$2(CachingUsernamePasswordRealm.java:139)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:162)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.common.util.concurrent.ListenableFuture.notifyListenerDirectly(ListenableFuture.java:113)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.common.util.concurrent.ListenableFuture.addListener(ListenableFuture.java:55)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.authenticateWithCache(CachingUsernamePasswordRealm.java:134)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.support.CachingUsernamePasswordRealm.authenticate(CachingUsernamePasswordRealm.java:105)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.lambda$consumeToken$4(RealmsAuthenticator.java:147)\n\tat org.elasticsearch.xcore@8.6.1/org.elasticsearch.xpack.core.common.IteratingActionListener.run(IteratingActionListener.java:117)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.consumeToken(RealmsAuthenticator.java:234)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.RealmsAuthenticator.authenticate(RealmsAuthenticator.java:83)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$5(AuthenticatorChain.java:180)\n\tat org.elasticsearch.xcore@8.6.1/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:135)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$5(AuthenticatorChain.java:158)\n\tat org.elasticsearch.xcore@8.6.1/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:135)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$5(AuthenticatorChain.java:158)\n\tat org.elasticsearch.xcore@8.6.1/org.elasticsearch.xpack.core.common.IteratingActionListener.onResponse(IteratingActionListener.java:135)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$getAuthenticatorConsumer$5(AuthenticatorChain.java:158)\n\tat org.elasticsearch.xcore@8.6.1/org.elasticsearch.xpack.core.common.IteratingActionListener.run(IteratingActionListener.java:117)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.doAuthenticate(AuthenticatorChain.java:136)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticatorChain.authenticateAsync(AuthenticatorChain.java:95)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticationService.authenticate(AuthenticationService.java:149)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.authc.AuthenticationService.authenticate(AuthenticationService.java:127)\n\tat org.elasticsearch.security@8.6.1/org.elasticsearch.xpack.security.rest.SecurityRestFilter.handleRequest(SecurityRestFilter.java:101)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:398)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.rest.RestController.tryAllHandlers(RestController.java:532)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:313)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.http.AbstractHttpServerTransport.dispatchRequest(AbstractHttpServerTransport.java:379)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.http.AbstractHttpServerTransport.handleIncomingRequest(AbstractHttpServerTransport.java:460)\n\tat org.elasticsearch.server@8.6.1/org.elasticsearch.http.AbstractHttpServerTransport.incomingRequest(AbstractHttpServerTransport.java:353)\n\tat org.elasticsearch.transport.netty4@8.6.1/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.handlePipelinedRequest(Netty4HttpPipeliningHandler.java:128)\n\tat org.elasticsearch.transport.netty4@8.6.1/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.channelRead(Netty4HttpPipeliningHandler.java:118)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\tat io.netty.codec@4.1.84.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\tat io.netty.codec@4.1.84.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\tat io.netty.codec@4.1.84.Final/io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:336)\n\tat io.netty.codec@4.1.84.Final/io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:308)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\tat io.netty.codec@4.1.84.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\tat io.netty.handler@4.1.84.Final/io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1373)\n\tat io.netty.handler@4.1.84.Final/io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1236)\n\tat io.netty.handler@4.1.84.Final/io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1285)\n\tat io.netty.codec@4.1.84.Final/io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:519)\n\tat io.netty.codec@4.1.84.Final/io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:458)\n\tat io.netty.codec@4.1.84.Final/io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:280)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:689)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:652)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n\tat io.netty.common@4.1.84.Final/io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n\tat io.netty.common@4.1.84.Final/io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n\tat java.base/java.lang.Thread.run(Thread.java:1589)\n"
  },
  "status" : 400
}

# TCP states:
  Established: 101
  TimeWait: 13
  CloseWait: 5

# ThreadPool statistics:
  Worker: 
    Busy: 1
    Free: 32766
    Min: 20
    Max: 32767
  IOCP: 
    Busy: 0
    Free: 1000
    Min: 20
    Max: 1000
@deMD deMD added 8.x Relates to 8.x client version Category: Bug labels Apr 25, 2024
@flobernd
Copy link
Member

Hi @deMD,

please try to use MultiGetRequestDescriptor<TDocument> instead. The inference is usually done at descriptor creation. The request class does not support a generic type parameter and therefore has no way to determine the type of the document.

@deMD
Copy link
Author

deMD commented Apr 26, 2024

@flobernd This gives me the same exception:

var resp = await _client.MultiGetAsync<TDocument>(x => x
                .Ids(new Ids(new Id[]  { 1 })), 
                cancellationToken);

@deMD
Copy link
Author

deMD commented Apr 26, 2024

2024-04-26_09-37-06.mp4

As you can see in this video, a searchrequest on the same index does work.

@flobernd
Copy link
Member

Hi @deMD, I'm sorry I think I tested the wrong thing yesterday 😪

You are completely right, there is a bug in the generator that breaks the inference for descriptors that only have a required index/indices argument but not an id.

I'll take care!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
8.x Relates to 8.x client version Area: Generator Category: Bug
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants