DBAtlas · Atlas d'exploitation des bases de données

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

Elasticsearch

Que signifie cette erreur ?

Une requête de mise à jour/suppression de document a été rejetée par le contrôle de concurrence optimiste. La version du document (ou _seq_no/_primary_term) ne correspond pas à celle de la requête ; autrement dit, quelqu'un d'autre a modifié le document après votre lecture. Renvoie HTTP 409.

Cause

Mises à jour concurrentes du même document, écriture tentée avec une version/un seq_no obsolète, tentative de création (op_type=create) d'un document qui existe déjà, ou condition de concurrence lors d'un _bulk.

Comment la corriger

Relisez le document et relancez la requête avec les _seq_no et _primary_term (ou la version) actuels (boucle lecture-modification-écriture). Pour des relances automatiques, utilisez le paramètre retry_on_conflict de la requête _update ; dans _update_by_query/_delete_by_query, passez conflicts=proceed pour ignorer les documents en conflit et continuer. Si l'intention est une création uniquement, le conflit est normal ; interceptez 409 dans l'application et traitez-le de façon appropriée (relance ou abandon).

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur