Skip to content

Exception calling Security.PutUser - System.Exception: No route taking 0 parameters_security/user/{username} #8774

@keithbroadley

Description

@keithbroadley

Elastic.Clients.Elasticsearch version: 8.19.12

Elasticsearch version: 8.19.6

.NET runtime version: 8.0.22

Operating system version: Microsoft Windows 11 Enterprise (10.0.26200)

Description of the problem including expected versus actual behavior:

I'm currently converting a NEST 7.17.5 project to 8.19.12.

ElasticSearchClient.Security.PutUser() no longer takes a username parameter and when the username is moved to the body of the request, a client side exception is thrown:

System.Exception: No route taking 0 parameters_security/user/{username}
   at Elastic.Clients.Elasticsearch.Requests.ApiUrls.Resolve(RouteValues routeValues, IElasticsearchClientSettings settings) in /_/src/Elastic.Clients.Elasticsearch/_Shared/Core/Request/ApiUrls.cs:line 68
   at Elastic.Clients.Elasticsearch.Requests.Request.ResolveUrl(RouteValues routeValues, IElasticsearchClientSettings settings) in /_/src/Elastic.Clients.Elasticsearch/_Shared/Core/Request/Request.cs:line 57
   at Elastic.Clients.Elasticsearch.Requests.Request.GetUrl(IElasticsearchClientSettings settings) in /_/src/Elastic.Clients.Elasticsearch/_Shared/Core/Request/Request.cs:line 63
   at Elastic.Clients.Elasticsearch.ElasticsearchClient.PrepareRequest[TRequest,TRequestParameters](TRequest request, EndpointPath& endpointPath, PostData& postData, IRequestConfiguration& requestConfiguration, Dictionary`2& routeValues) in /_/src/Elastic.Clients.Elasticsearch/_Shared/Client/ElasticsearchClient.cs:line 291
   at Elastic.Clients.Elasticsearch.ElasticsearchClient.<>c__DisplayClass708_0`3.<DoRequestCoreAsync>g__SendRequest|0() in /_/src/Elastic.Clients.Elasticsearch/_Shared/Client/ElasticsearchClient.cs:line 152
   at Elastic.Clients.Elasticsearch.ElasticsearchClient.DoRequestCoreAsync[TRequest,TResponse,TRequestParameters](Boolean isAsync, TRequest request, CancellationToken cancellationToken) in /_/src/Elastic.Clients.Elasticsearch/_Shared/Client/ElasticsearchClient.cs:line 145
   at Elastic.Clients.Elasticsearch.ElasticsearchClient.DoRequest[TRequest,TResponse,TRequestParameters](TRequest request) in /_/src/Elastic.Clients.Elasticsearch/_Shared/Client/ElasticsearchClient.cs:line 106
   at Elastic.Clients.Elasticsearch.NamespacedClientProxy.DoRequest[TRequest,TResponse,TRequestParameters](TRequest request) in /_/src/Elastic.Clients.Elasticsearch/_Shared/Client/NamespacedClientProxy.cs:line 42
   at Elastic.Clients.Elasticsearch.Security.SecurityNamespacedClient.PutUser(Action`1 action) in /_/src/Elastic.Clients.Elasticsearch/_Generated/Client/ElasticsearchClient.Security.g.cs:line 2603

The v8 version of Security.PutRole() does take an initial name parameter, and works as expected so it looks like an omission in the autogenerated client code?

Steps to reproduce:
Example code:

                var result = elasticSearchClient.Security.PutUser(user => user                     
                    .Username("test")
                    .FullName("test user")
                    .Email("[email protected]")
                    .Password("password");

Expected behavior
No exception, user created.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions