Erreur PostgreSQL : current transaction is aborted

ERROR:  current transaction is aborted, commands ignored until end of transaction block

Cette erreur n'est jamais la cause racine. Une instruction antérieure dans la même transaction a déjà échoué, la transaction est entrée dans l'état annulé, et PostgreSQL rejette désormais toute commande ultérieure jusqu'à ce que vous mettiez fin à la transaction avec ROLLBACK. La question à laquelle répondre est toujours : quelle était la première erreur ?

Ce que signifie cette erreur

Dès qu'une instruction à l'intérieur d'une transaction échoue, PostgreSQL garantit que la transaction dans son ensemble ne peut pas valider — permettre à d'autres instructions de « réussir » vous laisserait valider une unité de travail à moitié appliquée. Il les refuse donc toutes, en répétant ce message, jusqu'à ce que l'application émette ROLLBACK (ou revienne à un savepoint pris avant l'échec).

Si vous voyez des flots de 25P02 dans vos journaux, lisez-les comme un symptôme à deux couches : une erreur d'origine (une ligne, facile à manquer) et une application qui a continué à utiliser la connexion comme si de rien n'était (le flot).

Causes fréquentes

Comment la diagnostiquer

Comment la corriger

🔍 Souvent trouvés ensemble : duplicate key value violates unique constraint — la « première erreur » la plus courante derrière un flot de 25P02.