Ainuddin3
Ainuddin3

Reputation: 27

Elastic document update: action_request_validation_exception -> compare and write operations can not be retried, in C#

When I am using .IfSequenceNumber(document.sequenceNumber) .IfPrimaryTerm(document.primaryTerm), I am not able to update the elastic document.

Without using this, it is updating fine. But I need to handle update concurrency issue, so I need to use this.

My code is

var x = await _placementElasticRepository.UpdateOneAsync(document.placementId, u => u
.Doc(new
{
    preceptors = document.preceptors,
    sitePeople = document.sitePeople
})
.IfSequenceNumber(document.sequenceNumber)
.IfPrimaryTerm(document.primaryTerm)
.RetryOnConflict(3))
.ConfigureAwait(false);

Here, when I am using .IfSequenceNumber(document.sequenceNumber) .IfPrimaryTerm(document.primaryTerm), I am getting the following error in vaiable x, and it is not throwing any exception. It is proceeding without updating the document.

Invalid NEST response built from a unsuccessful (400) low level call on POST: /placement-report-uat/_update/8b5aaa90-6aaa-4d9a-bd8f-6aaa8851daaa?if_seq_no=121680&if_primary_term=64&retry_on_conflict=3
# 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://test-uat-elasticsearch.es.india.azure.elastic-cloud.com/
Took: 00:00:01.3540664
# OriginalException: Elasticsearch.Net.ElasticsearchClientException: Request failed to execute. Call: Status code 400 from: POST /placement-report-uat/_update/8b5aaa90-6aaa-4d9a-bd8f-6aaa8851daaa?if_seq_no=121680&if_primary_term=64&retry_on_conflict=3. ServerError: Type: action_request_validation_exception Reason: "Validation Failed: 1: compare and write operations can not be retried;"
# Request:
{"doc":{"preceptors":[{"id":"8b5bbb90-6aaa-4d9a-bd8f-6aaa8851daaa","prefix":"","title":"","lastName":"44444_1","firstName":"44444_1","email":"[email protected]","isActive":true,"addedBy":"school","phoneExtension":""},{"id":"8b5aaa90-6aaa-4d9a-bd8f-6aaa8851daaa","prefix":"","title":"","lastName":"4444_3","firstName":"44444_3","email":"[email protected]","isActive":true,"addedBy":"school","phoneExtension":""}],"sitePeople":[{"id":"8b5aaa90-6aaa-4d9a-bd8f-6aaa8851daaa","prefix":"","title":"","lastName":"44444_1","firstName":"44444_1","fullName":" 44444_1 44444_1","email":"[email protected]","isActive":true,"phoneExtension":""},{"id":"8b5aaa90-6aaa-4d9a-bd8f-6aaa8851daaa","prefix":"","title":"","lastName":"4444_3","firstName":"44444_3","fullName":" 44444_3 4444_3","email":"[email protected]","isActive":true,"phoneExtension":""}]}}
# Response:
{"error":{"root_cause":[{"type":"action_request_validation_exception","reason":"Validation Failed: 1: compare and write operations can not be retried;"}],"type":"action_request_validation_exception","reason":"Validation Failed: 1: compare and write operations can not be retried;"},"status":400}

Please tell me how to make this working.

Upvotes: 0

Views: 32

Answers (0)

Related Questions