SQLSTATE 08007 ERROR Class 08: Connection Exception

transaction_resolution_unknown Transaction Resolution Unknown — SQLSTATE 08007

SQLSTATE 08007 (transaction_resolution_unknown): The client/server connection could not be established or was lost.

PG 12, 13, 14, 15, 16, 17, 18 Official docs
Last reviewed May 2025 Grounded in source

Symptoms

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.

Environment

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

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.

Diagnostic Queries

Recovery

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).

Was this helpful?