25006: read_only_sql_transaction
PostgreSQLO que significa?
Houve a tentativa de executar um comando que modifica dados (INSERT/UPDATE/DELETE/DDL) dentro de uma transação somente leitura. A transação está configurada apenas para leituras. Pertence à Class 25 (invalid_transaction_state).
Por que acontece?
SET TRANSACTION READ ONLY ou a configuração default_transaction_read_only=on; ou, mais comumente, uma tentativa de escrita em uma réplica de leitura (hot standby / streaming replica). Servidores standby são somente leitura por definição.
Como resolver
Direcione as escritas para o servidor primário; verifique o roteamento de conexões que separa leituras e escritas. Se foi configurado por engano: SET TRANSACTION READ WRITE; ou, no servidor inteiro, default_transaction_read_only=off. Garanta que a aplicação envie o tráfego de leitura e escrita para o nó correto.