-
Notifications
You must be signed in to change notification settings - Fork 0
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
Elasticsearch Cloud throws an execption when indexing an item that does not exist yet. #118
Comments
The issue was resolved by moving child pages to a new parent. Apparently, some relation broke and Examine coulnd't find the page to index in the first place, hence throwing this upon a publish action. Feel free to close it - I do think a better error message is helpful. |
Many thanks @raimondkempees-arc for the report and follow up. I'll review the stack trace further to see if it can be determined what is happening behind the scenes. Examine/ExamineX just accepts data sets from Umbraco and passes it to the index. In this case, it seems to indicate that an attempt to delete an item while using a Lucene query syntax causes a cascade of error messages. The part about the It would be interesting to have seen if any Umbraco health checks may have indicated that there was some data mismatches with paths, etc... |
The message indeed is false. I’m pretty sure it’s because of an empty body being sent to ES at one of the requests to delete.
From: Shannon Deminick ***@***.***>
Date: Tuesday, 21 January 2025 at 17:36
To: SDKits/ExamineX ***@***.***>
Cc: Raimond Kempees ***@***.***>, Mention ***@***.***>
Subject: Re: [SDKits/ExamineX] Elasticsearch Cloud throws an execption when indexing an item that does not exist yet. (Issue #118)
Many thanks @raimondkempees-arc<https://github.com/raimondkempees-arc> for the report and follow up. I'll review the stack trace further to see if it can be determined what is happening behind the scenes. Examine/ExamineX just accepts data sets from Umbraco and passes it to the index. In this case, it seems to indicate that an attempt to delete an item while using a Lucene query syntax causes a cascade of error messages. The part about the The client is unable to verify that the server is Elasticsearch due to security privileges on the server side I believe is a false/misleading message in this case. I'll keep this open for a little bit to see if we can replicate in tests for specific scenarios.
It would be interesting to have seen if any Umbraco health checks may have indicated that there was some data mismatches with paths, etc...
—
Reply to this email directly, view it on GitHub<#118 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/BK36GXLJDMN7CXA7IDIYGAT2LZZQ5AVCNFSM6AAAAABVSMMT46VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDMMBVGIYTSNZYGY>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Describe the bug
We have the strange situation that on one of four environments that are integrated with Elastic Cloud, upon indexing items, for one item type we see the following issue:
First we see inthe log:
2025-01-21T12:00:06.538493+00:00 @MessageTemplate DeleteFromIndex with query: __Path:\-1\,*3363\,* (found 0 results) SourceContext ExamineX.ElasticSearch.ElasticSearchIndex ActionId 6e305c3d-1935-4165-84fb-78593ff71aac ActionName Umbraco.Cms.Web.BackOffice.Controllers.ContentController.PostSave (Umbraco.Web.BackOffice) RequestId 4000130f-0800-fb00-b63f-84710c7967bb RequestPath /umbraco/backoffice/umbracoapi/content/PostSave ProcessId 2568 ProcessName w3wp ThreadId 18 ApplicationId ea6c9907b5dfb977abd279e5dd977d85f29f78cb MachineName dw1mdwk0001HC Log4NetLevel DEBUG HttpRequestId d7290817-4c9a-404d-8fb4-b26d92526645 HttpRequestNumber 2 HttpSessionId 00f7c9dc-26fb-6c7a-2c47-5164fa57857e
The this is immediately followed by an Elastic Exception:
Invalid NEST response built from a unsuccessful (400) low level call on POST: /index-external-websites-umbraco-cloud-live-2025-01-21-114803/_bulk?pretty=true&error_trace=true # Invalid Bulk items: # Warnings: - The client is unable to verify that the server is Elasticsearch due to security privileges on the server side. Some functionality may not be compatible if the server is running an unsupported product. # Audit trail of this API call: - [1] BadResponse: Node: https://sddd.dd.azure.elastic-cloud.com/ Took: 00:00:00.1503126 # OriginalException: Elasticsearch.Net.ElasticsearchClientException: Request failed to execute. Call: Status code 400 from: POST /index-external-websites-umbraco-cloud-live-2025-01-21-114803/_bulk?pretty=true&error_trace=true. ServerError: Type: parse_exception Reason: "could not parse bulk request body" CausedBy: "Type: parse_exception Reason: "request body is required"" # Request: # Response: { "error" : { "root_cause" : [ { "type" : "parse_exception", "reason" : "request body is required", "stack_trace" : "org.elasticsearch.ElasticsearchParseException: request body is required\n\tat [email protected]/org.elasticsearch.rest.RestRequest.requiredContent(RestRequest.java:327)\n\tat [email protected]/org.elasticsearch.rest.action.document.RestBulkAction.prepareRequest(RestBulkAction.java:113)\n\tat [email protected]/org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:106)\n\tat [email protected]/org.elasticsearch.rest.RestController$1.onResponse(RestController.java:504)\n\tat [email protected]/org.elasticsearch.rest.RestController$1.onResponse(RestController.java:498)\n\tat [email protected]/org.elasticsearch.xpack.security.rest.SecurityRestFilter.doHandleRequest(SecurityRestFilter.java:89)\n\tat [email protected]/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$intercept$0(SecurityRestFilter.java:81)\n\tat [email protected]/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:257)\n\tat [email protected]/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.lambda$authenticateAndAttachToContext$3(SecondaryAuthenticator.java:99)\n\tat [email protected]/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:247)\n\tat [email protected]/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticate(SecondaryAuthenticator.java:109)\n\tat [email protected]/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticateAndAttachToContext(SecondaryAuthenticator.java:90)\n\tat [email protected]/org.elasticsearch.xpack.security.rest.SecurityRestFilter.intercept(SecurityRestFilter.java:75)\n\tat [email protected]/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:498)\n\tat [email protected]/org.elasticsearch.rest.RestController.tryAllHandlers(RestController.java:662)\n\tat [email protected]/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:341)\n\tat [email protected]/org.elasticsearch.http.AbstractHttpServerTransport.dispatchRequest(AbstractHttpServerTransport.java:488)\n\tat [email protected]/org.elasticsearch.http.AbstractHttpServerTransport.handleIncomingRequest(AbstractHttpServerTransport.java:584)\n\tat [email protected]/org.elasticsearch.http.AbstractHttpServerTransport.incomingRequest(AbstractHttpServerTransport.java:461)\n\tat [email protected]/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.handlePipelinedRequest(Netty4HttpPipeliningHandler.java:169)\n\tat [email protected]/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.channelRead(Netty4HttpPipeliningHandler.java:148)\n\tat [email protected]/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n\tat [email protected]/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\tat [email protected]/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\tat [email protected]/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:107)\n\tat [email protected]/io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:120)\n\tat [email protected]/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n\tat [email protected]/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\tat [email protected]/
License ID
f490f46a-099b-4798-bd7d-8067a0aac9a0
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Screenshots
If applicable, add screenshots to help explain your problem.
Versions
The text was updated successfully, but these errors were encountered: