Transaction Resolution Unknown — SQLSTATE 08007

SQLSTATE 08007 condition transaction_resolution_unknown class 08 — Connection Exception severity ERROR
Reproduced & verified on PostgreSQL 14.23, 15.18, 16.14, 17.10 and 18.4 — identical message on every version.
Last reviewed 29 May 2025 · Reproduced live with the SQL on this page.

! Symptoms Free

The server reports SQLSTATE 08007 (transaction_resolution_unknown), a condition in the Connection Exception class.

  • The error is written to the server log and returned to the client carrying SQLSTATE 08007.
  • Any driver (libpq, JDBC, psycopg, npgsql, pgx) surfaces this code in its error object so you can branch on it programmatically.
  • PL/pgSQL can trap it by name: EXCEPTION WHEN transaction_resolution_unknown THEN.

1 Environment & reproduce Free

Severity: ERROR  |  PostgreSQL versions: 12, 13, 14, 15, 16, 17

Commonly coincides with restarts, failover, maintenance, or network events; check server uptime and the log around the timestamp.

? Root cause Free

08007 belongs to Class 08 — Connection Exception. In this class, the client/server connection could not be established or was lost.

The first two characters (08) identify the error class, so application code can match the whole class via 08000 when the specific code is not needed.

3 Recovery & verify Free

Verify the server is running and reachable (pg_isready), check host/port, listen_addresses, pg_hba.conf, firewalls and TLS, and add reconnect-with-backoff so the client never reuses a broken connection.

Reference: PostgreSQL error codes — Class 08 (Connection Exception).