version_conflict_engine_exception: version_conflict_engine_exception: [_doc][id]: конфликт версий, текущая версия [x] отличается от указанной [y] (HTTP 409)
ElasticsearchЧто это значит?
Запрос на обновление/удаление документа отклонён оптимистичным управлением параллелизмом. Версия документа (или _seq_no/_primary_term) не совпадает с указанной в запросе; то есть кто-то изменил документ после того, как вы его прочитали. Возвращается HTTP 409.
Почему возникает?
Параллельные обновления одного и того же документа, попытка записи с устаревшей версией/seq_no, попытка создать (op_type=create) уже существующий документ или состояние гонки при _bulk.
Как исправить
Перечитайте документ и повторите запрос с текущими _seq_no и _primary_term (или version) (цикл чтение-изменение-запись). Для автоматических повторов используйте параметр retry_on_conflict в запросе _update; в _update_by_query/_delete_by_query передавайте conflicts=proceed, чтобы пропускать конфликтующие документы и продолжать. Если намерение — только создание, конфликт нормален; перехватывайте 409 в приложении и обрабатывайте соответствующим образом (повтор или пропуск).
Ещё по этой СУБД
- illegal_argument_exception_fielddataillegal_argument_exception: fielddata по умолчанию отключена для текстовых полей. Задайте fielddata=true для [your_field], чтобы загрузить fielddata в память
- search_phase_execution_exceptionsearch_phase_execution_exception: сбой на всех шардах / не удалось выполнить фазу [query]
- too_many_clausestoo_many_clauses: maxClauseCount равен 1024 (в запросе слишком много условий)
- document_missing_exceptiondocument_missing_exception: [_doc][id]: документ отсутствует
- index_not_found_exceptionindex_not_found_exception: индекс [index_name] не существует (HTTP 404)
- resource_already_exists_exceptionresource_already_exists_exception: индекс [index_name/uuid] уже существует (HTTP 400)
- cluster_health_redСостояние кластера: RED / неназначенные шарды