PostgreSQL Error Reference

Every error, explained

SQLSTATE codes, condition names, root causes, diagnostic queries, and recovery steps — structured for engineers running PostgreSQL in production.

3910 errors documentedFree diagnostics on every pageAll PG versions covered

Showing 3816 of 3910 errors

HV010 ERROR

Fdw Function Sequence Error — SQLSTATE HV010

fdw_function_sequence_error

SQLSTATE HV010 (fdw_function_sequence_error): A foreign data wrapper (SQL/MED) operation failed.

Foreign Data Wrapper Error (SQL/MED)
HV014 ERROR

Fdw Too Many Handles — SQLSTATE HV014

fdw_too_many_handles

SQLSTATE HV014 (fdw_too_many_handles): A foreign data wrapper (SQL/MED) operation failed.

Foreign Data Wrapper Error (SQL/MED)
HV021 ERROR

Fdw Inconsistent Descriptor Information — SQLSTATE HV021

fdw_inconsistent_descriptor_information

SQLSTATE HV021 (fdw_inconsistent_descriptor_information): A foreign data wrapper (SQL/MED) operation failed.

Foreign Data Wrapper Error (SQL/MED)
HV024 ERROR

Fdw Invalid Attribute Value — SQLSTATE HV024

fdw_invalid_attribute_value

SQLSTATE HV024 (fdw_invalid_attribute_value): A foreign data wrapper (SQL/MED) operation failed.

Foreign Data Wrapper Error (SQL/MED)
HV090 ERROR

Fdw Invalid String Length Or Buffer Length — SQLSTATE HV090

fdw_invalid_string_length_or_buffer_length

SQLSTATE HV090 (fdw_invalid_string_length_or_buffer_length): A foreign data wrapper (SQL/MED) operation failed.

Foreign Data Wrapper Error (SQL/MED)
HV091 ERROR

Fdw Invalid Descriptor Field Identifier — SQLSTATE HV091

fdw_invalid_descriptor_field_identifier

SQLSTATE HV091 (fdw_invalid_descriptor_field_identifier): A foreign data wrapper (SQL/MED) operation failed.

Foreign Data Wrapper Error (SQL/MED)
P0000 ERROR

Plpgsql Error — SQLSTATE P0000

plpgsql_error

SQLSTATE P0000 (plpgsql_error): A PL/pgSQL runtime condition was raised.

PL/pgSQL Error
P0000 ERROR

variable “…” is not declared — P0000

plpgsql_error

PostgreSQL error "variable … is not declared — P0000" (SQLSTATE P0000): what it means, common causes, and how to fix it.

PL/pgSQL Error
P0001 ERROR

Raise Exception — SQLSTATE P0001

raise_exception

A user-defined exception was raised by RAISE EXCEPTION.

PL/pgSQL Error
P0001 ERROR

… — P0001

raise_exception

PostgreSQL error "…" (SQLSTATE P0001): what it means, common causes, and how to fix it.

PL/pgSQL Error
P0001 ERROR

unhandled exception in PL/pgSQL — P0001

raise_exception

PostgreSQL error "unhandled exception in PL/pgSQL — P0001" (SQLSTATE P0001): what it means, common causes, and how to fix it.

PL/pgSQL Error
P0002 ERROR

No Data Found — SQLSTATE P0002

no_data_found

A PL/pgSQL SELECT INTO STRICT found no rows.

PL/pgSQL Error
P0002 ERROR

query returned no rows — P0002

no_data_found

PostgreSQL error "query returned no rows" (SQLSTATE P0002): what it means, common causes, and how to fix it.

PL/pgSQL Error
P0002 ERROR

query returned no rows — P0002

no_data_found

PostgreSQL error "query returned no rows — P0002" (SQLSTATE P0002): what it means, common causes, and how to fix it.

PL/pgSQL Error
P0003 ERROR

Too Many Rows — SQLSTATE P0003

too_many_rows

A PL/pgSQL SELECT INTO STRICT returned more than one row.

PL/pgSQL Error
P0003 ERROR

query returned more than one row — P0003

too_many_rows

PostgreSQL error "query returned more than one row" (SQLSTATE P0003): what it means, common causes, and how to fix it.

PL/pgSQL Error
P0003 ERROR

query returned more than one row — P0003

too_many_rows

PostgreSQL error "query returned more than one row — P0003" (SQLSTATE P0003): what it means, common causes, and how to fix it.

PL/pgSQL Error
P0004 ERROR

Assert Failure — SQLSTATE P0004

assert_failure

A PL/pgSQL ASSERT condition evaluated to false.

PL/pgSQL Error
P0004 ERROR

assertion failed — P0004

assert_failure

PostgreSQL error "assertion failed" (SQLSTATE P0004): what it means, common causes, and how to fix it.

PL/pgSQL Error
P0004 ERROR

assertion failed — P0004

assert_failure

PostgreSQL error "assertion failed — P0004" (SQLSTATE P0004): what it means, common causes, and how to fix it.

PL/pgSQL Error
XX000 PANIC

Internal Error — SQLSTATE XX000

internal_error

PostgreSQL hit an internal error or unexpected state.

Internal Error
XX000 FATAL

SQLSTATE XX000 — internal_error: Database Files Moved to Different System

internal_error

A team copies $PGDATA from Server A to Server B using rsync while PostgreSQL is running. Server B fails to start PostgreSQL with FATAL: database files are incompatible with server or FATAL: lock file

XX — Internal Error
XX000 ERROR

database is not accepting commands to avoid wraparound data loss — XX000

internal_error

PostgreSQL error "database is not accepting commands to avoid wraparound data loss — XX000" (SQLSTATE XX000): what it means, common causes, and how to fix it.

Internal Error
XX001 PANIC

Data Corrupted — SQLSTATE XX001

data_corrupted

PostgreSQL detected corrupted data on disk.

Internal Error