DBAtlas · Atlas de operações de banco de dados

version_conflict_engine_exception: version_conflict_engine_exception: [_doc][id]: version conflict, current version [x] is different than the one provided [y] (HTTP 409)

Elasticsearch

O que significa?

Uma requisição de update/delete de documento foi rejeitada pelo controle de concorrência otimista. A versão do documento (ou _seq_no/_primary_term) não corresponde à da requisição; ou seja, outra pessoa modificou o documento depois que você o leu. Retorna HTTP 409.

Por que acontece?

Atualizações concorrentes no mesmo documento, uma gravação tentada com version/seq_no desatualizado, uma tentativa de criar (op_type=create) um documento que já existe, ou uma condição de corrida durante _bulk.

Como resolver

Leia o documento novamente e repita a requisição com o _seq_no e o _primary_term (ou version) atuais (loop read-modify-write). Para retries automáticos, use o parâmetro retry_on_conflict na requisição _update; em _update_by_query/_delete_by_query passe conflicts=proceed para pular os documentos em conflito e continuar. Se a intenção for apenas criar, o conflito é normal; capture o 409 na aplicação e trate-o adequadamente (repetir ou pular).

Abrir no DBAtlas →

Mais entradas deste banco