PG
PRO
pgref.dev/errors

Postgres Error Code Reference

Every significant SQLSTATE error explained — what it means, why it happens, and how to fix it. Trigger SQL and fix SQL included for every entry.

⚙️ Error examples are AI-generated to help developers and are subject to the occasional error. Always verify against your specific version and setup.

Class:
251 of 251 errors244 HIGH6 MEDIUM1 LOW
23505

duplicate key value violates unique constraint

Integrity Constraint Violation

Safe✅ HIGH
23503

insert or update on table violates foreign key constraint

Integrity Constraint Violation

Safe✅ HIGH
42P01

relation does not exist

Undefined Table

Safe✅ HIGH
42703

column does not exist

Undefined Column

Safe✅ HIGH
08006

connection failure

Connection Exception

Caution⚠️ MEDIUM
28000

invalid authorization specification

Invalid Authorization Specification

Safe✅ HIGH
40001

could not serialize access due to concurrent update

Transaction Rollback

Caution✅ HIGH
40P01

deadlock detected

Transaction Rollback

Caution✅ HIGH
22001

value too long for type character varying

Data Exception

Safe✅ HIGH
53100

disk full

Insufficient Resources

Handle with care⚠️ MEDIUM
42601

syntax error at or near "..."

Syntax Error or Access Rule Violation

Safe✅ HIGH
55P03

lock not available

Object Not In Prerequisite State

Caution✅ HIGH
22P02

invalid input syntax for type integer

Data Exception

Safe✅ HIGH
42501

permission denied for table

Privilege Not Granted

Safe✅ HIGH
57014

canceling statement due to statement timeout

Operator Intervention

Caution✅ HIGH
23514

new row for relation violates check constraint

Integrity Constraint Violation

Safe✅ HIGH
42710

duplicate object

Duplicate Object

Safe✅ HIGH
42P07

relation already exists

Duplicate Table

Safe✅ HIGH
0A000

feature not supported

Feature Not Supported

Safe✅ HIGH
25P02

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

Invalid Transaction State

Safe✅ HIGH
55000

object not in prerequisite state

Object Not In Prerequisite State

Caution⚠️ MEDIUM
08001

could not connect to server

Connection Exception

Caution⚠️ MEDIUM
22003

numeric value out of range

Data Exception

Safe✅ HIGH
42883

function does not exist

Undefined Function

Safe✅ HIGH
53200

out of memory

Insufficient Resources

Handle with care⚠️ MEDIUM
42846

cannot cast type

Syntax Error or Access Rule Violation

Safe✅ HIGH
22007

invalid input syntax for type date

Data Exception

Safe✅ HIGH
23502

null value in column violates not-null constraint

Integrity Constraint Violation

Safe✅ HIGH
42P18

could not determine data type of parameter $N

Indeterminate Datatype

Safe✅ HIGH
XX000

internal error

Internal Error

Handle with care🔴 LOW
57P03

the database system is starting up

Operator Intervention

Handle with care✅ HIGH
57P01

terminating connection due to administrator command

Operator Intervention

Caution✅ HIGH
58000

could not open file

System Error

Handle with care⚠️ MEDIUM
53300

remaining connection slots are reserved for non-replication superuser connections

Too Many Connections

Caution✅ HIGH
3D000

database does not exist

Invalid Catalog Name

Safe✅ HIGH
3F000

invalid schema name

Invalid Schema Name

Safe✅ HIGH
42P16

invalid table definition

Syntax Error or Access Rule Violation

Safe✅ HIGH
2BP01

cannot drop table because other objects depend on it

Dependent Privilege Descriptors Still Exist

Safe✅ HIGH
25001

active SQL transaction

Invalid Transaction State

Safe✅ HIGH
2D000

invalid transaction termination

Invalid Transaction Termination

Safe✅ HIGH
00000

successful completion

Successful Completion

Safe✅ HIGH
01000

warning

Warning

Handle with care✅ HIGH
0100C

dynamic result sets returned

Warning

Handle with care✅ HIGH
01008

implicit zero bit padding

Warning

Handle with care✅ HIGH
01003

null value eliminated in set function

Warning

Handle with care✅ HIGH
01007

privilege not granted

Warning

Handle with care✅ HIGH
01006

privilege not revoked

Warning

Handle with care✅ HIGH
01004

string data right truncation

Warning

Caution✅ HIGH
01P01

deprecated feature

Warning

Caution✅ HIGH
02000

no data

No Data

Handle with care✅ HIGH
02001

no additional dynamic result sets returned

No Data

Safe✅ HIGH
03000

sql statement not yet complete

SQL Statement Not Yet Complete

Handle with care✅ HIGH
08000

connection exception

Connection Exception

Caution✅ HIGH
08003

connection does not exist

Connection Exception

Caution✅ HIGH
08004

sqlserver rejected establishment of sqlconnection

Connection Exception

Caution✅ HIGH
08007

transaction resolution unknown

Connection Exception

Safe✅ HIGH
08P01

protocol violation

Connection Exception

Caution✅ HIGH
09000

triggered action exception

Triggered Action Exception

Caution✅ HIGH
0B000

invalid transaction initiation

Invalid Transaction Initiation

Caution✅ HIGH
0F000

locator exception

Locator Exception

Handle with care✅ HIGH
0F001

invalid locator specification

Locator Exception

Handle with care✅ HIGH
0L000

invalid grantor

Invalid Grantor

Caution✅ HIGH
0LP01

invalid grant operation

Invalid Grantor

Caution✅ HIGH
0P000

invalid role specification

Invalid Role Specification

Caution✅ HIGH
0Z000

diagnostics exception

Diagnostics Exception

Handle with care✅ HIGH
0Z002

stacked diagnostics accessed without active handler

Diagnostics Exception

Handle with care✅ HIGH
20000

case not found

Case Not Found

Caution✅ HIGH
21000

cardinality violation

Cardinality Violation

Caution✅ HIGH
22000

data exception

Data Exception

Caution✅ HIGH
2202E

array subscript error

Data Exception

Caution✅ HIGH
22021

character not in repertoire

Data Exception

Caution✅ HIGH
22008

datetime field overflow

Data Exception

Caution✅ HIGH
22012

division by zero

Data Exception

Caution✅ HIGH
22005

error in assignment

Data Exception

Caution✅ HIGH
2200B

escape character conflict

Data Exception

Caution✅ HIGH
22022

indicator overflow

Data Exception

Handle with care✅ HIGH
22015

interval field overflow

Data Exception

Caution✅ HIGH
2201E

invalid argument for logarithm

Data Exception

Caution✅ HIGH
22014

invalid argument for ntile function

Data Exception

Caution✅ HIGH
22016

invalid argument for nth_value function

Data Exception

Caution✅ HIGH
2201F

invalid argument for power function

Data Exception

Caution✅ HIGH
2201G

invalid argument for width_bucket function

Data Exception

Caution✅ HIGH
22018

invalid character value for cast

Data Exception

Caution✅ HIGH
22019

invalid escape character

Data Exception

Caution✅ HIGH
2200D

invalid escape octet

Data Exception

Caution✅ HIGH
22025

invalid escape sequence

Data Exception

Caution✅ HIGH
22P06

nonstandard use of escape character

Data Exception

Handle with care✅ HIGH
22010

invalid indicator parameter value

Data Exception

Handle with care✅ HIGH
22023

invalid parameter value

Data Exception

Caution✅ HIGH
22013

invalid preceding or following size in window function

Data Exception

Caution✅ HIGH
2201B

invalid regular expression

Data Exception

Caution✅ HIGH
2201W

invalid row count in LIMIT clause

Data Exception

Caution✅ HIGH
2201X

invalid row count in result offset clause

Data Exception

Caution✅ HIGH
2202H

invalid tablesample argument

Data Exception

Caution✅ HIGH
2202G

invalid tablesample repeat

Data Exception

Caution✅ HIGH
22009

invalid time zone displacement value

Data Exception

Caution✅ HIGH
2200C

invalid use of escape character

Data Exception

Caution✅ HIGH
2200G

most specific type mismatch

Data Exception

Caution✅ HIGH
22004

null value not allowed

Data Exception

Caution✅ HIGH
22002

null value, no indicator parameter

Data Exception

Handle with care✅ HIGH
2200H

sequence generator limit exceeded

Data Exception

Safe✅ HIGH
22026

string data length mismatch

Data Exception

Caution✅ HIGH
22011

substring error

Data Exception

Caution✅ HIGH
22027

trim error

Data Exception

Handle with care✅ HIGH
22024

unterminated C string

Data Exception

Caution✅ HIGH
2200F

zero length character string

Data Exception

Handle with care✅ HIGH
22P01

floating point exception

Data Exception

Caution✅ HIGH
22P03

invalid binary representation

Data Exception

Caution✅ HIGH
22P04

bad copy file format

Data Exception

Caution✅ HIGH
22P05

untranslatable character

Data Exception

Caution✅ HIGH
2200L

not an XML document

Data Exception

Caution✅ HIGH
2200M

invalid XML document

Data Exception

Caution✅ HIGH
2200N

invalid XML content

Data Exception

Caution✅ HIGH
2200S

invalid XML comment

Data Exception

Handle with care✅ HIGH
2200T

invalid XML processing instruction

Data Exception

Handle with care✅ HIGH
22030

invalid argument for SQL/JSON datetime function

Data Exception

Caution✅ HIGH
22031

invalid argument for SQL/JSON datetime function

Data Exception

Caution✅ HIGH
22032

invalid JSON text

Data Exception

Caution✅ HIGH
22033

invalid SQL/JSON subscript

Data Exception

Caution✅ HIGH
22034

more than one SQL/JSON item

Data Exception

Caution✅ HIGH
22035

no SQL/JSON item

Data Exception

Caution✅ HIGH
22036

non-numeric SQL/JSON item

Data Exception

Caution✅ HIGH
22037

non-unique keys in a JSON object

Data Exception

Caution✅ HIGH
22038

singleton SQL/JSON item required

Data Exception

Caution✅ HIGH
22039

SQL/JSON array not found

Data Exception

Caution✅ HIGH
2203A

SQL/JSON member not found

Data Exception

Caution✅ HIGH
2203B

SQL/JSON number not found

Data Exception

Caution✅ HIGH
2203C

SQL/JSON object not found

Data Exception

Caution✅ HIGH
2203D

too many JSON array elements

Data Exception

Caution✅ HIGH
2203E

too many JSON object members

Data Exception

Caution✅ HIGH
2203F

SQL/JSON scalar required

Data Exception

Caution✅ HIGH
2203G

SQL/JSON item cannot be cast to target type

Data Exception

Caution✅ HIGH
23000

integrity constraint violation

Integrity Constraint Violation

Caution✅ HIGH
23001

restrict violation

Integrity Constraint Violation

Caution✅ HIGH
23P01

exclusion constraint violation

Integrity Constraint Violation

Caution✅ HIGH
24000

invalid cursor state

Invalid Cursor State

Caution✅ HIGH
25000

invalid transaction state

Invalid Transaction State

Caution✅ HIGH
25002

active SQL transaction

Invalid Transaction State

Caution✅ HIGH
25008

held cursor requires same isolation level

Invalid Transaction State

Caution✅ HIGH
25003

inappropriate access mode for branch transaction

Invalid Transaction State

Caution✅ HIGH
25004

inappropriate isolation level for branch transaction

Invalid Transaction State

Caution✅ HIGH
25005

no active SQL transaction for branch transaction

Invalid Transaction State

Caution✅ HIGH
25006

read only SQL transaction

Invalid Transaction State

Caution✅ HIGH
25007

schema and data statement mixing not supported

Invalid Transaction State

Caution✅ HIGH
25P01

no active SQL transaction

Invalid Transaction State

Caution✅ HIGH
25P03

idle in transaction session timeout

Invalid Transaction State

Caution✅ HIGH
25P04

transaction timeout

Invalid Transaction State

Caution✅ HIGH
26000

invalid SQL statement name

Invalid SQL Statement Name

Caution✅ HIGH
27000

triggered data change violation

Triggered Data Change Violation

Caution✅ HIGH
28P01

invalid password

Invalid Authorization Specification

Caution✅ HIGH
2B000

dependent privilege descriptors still exist

Dependent Privilege Descriptors Still Exist

Caution✅ HIGH
2F000

SQL routine exception

SQL Routine Exception

Caution✅ HIGH
2F002

modifying SQL data not permitted

SQL Routine Exception

Caution✅ HIGH
2F003

prohibited SQL statement attempted

SQL Routine Exception

Caution✅ HIGH
2F004

reading SQL data not permitted

SQL Routine Exception

Caution✅ HIGH
2F005

function executed in wrong section of rule

SQL Routine Exception

Caution✅ HIGH
34000

invalid cursor name

Invalid Cursor Name

Caution✅ HIGH
38000

external routine exception

External Routine Exception

Caution✅ HIGH
38001

containing SQL not permitted

External Routine Exception

Caution✅ HIGH
38002

modifying SQL data not permitted

External Routine Exception

Caution✅ HIGH
38003

prohibited SQL statement attempted

External Routine Exception

Caution✅ HIGH
38004

reading SQL data not permitted

External Routine Exception

Caution✅ HIGH
39000

external routine invocation exception

External Routine Invocation Exception

Caution✅ HIGH
39001

invalid SQLSTATE returned

External Routine Invocation Exception

Caution✅ HIGH
39004

null value not allowed

External Routine Invocation Exception

Caution✅ HIGH
39P01

trigger protocol violated

External Routine Invocation Exception

Caution✅ HIGH
39P02

SRF protocol violated

External Routine Invocation Exception

Caution✅ HIGH
39P03

event trigger protocol violated

External Routine Invocation Exception

Caution✅ HIGH
3B000

savepoint exception

Savepoint Exception

Caution✅ HIGH
3B001

invalid savepoint specification

Savepoint Exception

Caution✅ HIGH
40000

transaction rollback

Transaction Rollback

Caution✅ HIGH
40002

transaction integrity constraint violation

Transaction Rollback

Caution✅ HIGH
40003

statement completion unknown

Transaction Rollback

Safe✅ HIGH
42000

syntax error or access rule violation

Syntax Error or Access Rule Violation

Caution✅ HIGH
42803

grouping error

Syntax Error or Access Rule Violation

Caution✅ HIGH
42P20

windowing error

Syntax Error or Access Rule Violation

Caution✅ HIGH
42P19

invalid recursion

Syntax Error or Access Rule Violation

Caution✅ HIGH
42830

invalid foreign key

Syntax Error or Access Rule Violation

Caution✅ HIGH
42602

invalid name

Syntax Error or Access Rule Violation

Caution✅ HIGH
42622

name too long

Syntax Error or Access Rule Violation

Caution✅ HIGH
42939

reserved name

Syntax Error or Access Rule Violation

Caution✅ HIGH
42804

datatype mismatch

Syntax Error or Access Rule Violation

Caution✅ HIGH
42P21

indeterminate collation

Syntax Error or Access Rule Violation

Caution✅ HIGH
42P22

indeterminate datatype

Syntax Error or Access Rule Violation

Caution✅ HIGH
42809

wrong object type

Syntax Error or Access Rule Violation

Caution✅ HIGH
428C9

generated always

Syntax Error or Access Rule Violation

Caution✅ HIGH
42P02

undefined parameter

Syntax Error or Access Rule Violation

Caution✅ HIGH
42704

undefined object

Syntax Error or Access Rule Violation

Caution✅ HIGH
42701

duplicate column

Syntax Error or Access Rule Violation

Caution✅ HIGH
42P03

duplicate cursor

Syntax Error or Access Rule Violation

Caution✅ HIGH
42P04

duplicate database

Syntax Error or Access Rule Violation

Caution✅ HIGH
42P05

duplicate prepared statement

Syntax Error or Access Rule Violation

Caution✅ HIGH
42P06

duplicate schema

Syntax Error or Access Rule Violation

Caution✅ HIGH
42P08

ambiguous parameter

Syntax Error or Access Rule Violation

Caution✅ HIGH
42P09

ambiguous alias

Syntax Error or Access Rule Violation

Caution✅ HIGH
42P10

invalid column reference

Syntax Error or Access Rule Violation

Caution✅ HIGH
42P11

invalid cursor definition

Syntax Error or Access Rule Violation

Caution✅ HIGH
42P12

invalid database definition

Syntax Error or Access Rule Violation

Caution✅ HIGH
42P13

invalid function definition

Syntax Error or Access Rule Violation

Caution✅ HIGH
42P14

invalid prepared statement definition

Syntax Error or Access Rule Violation

Caution✅ HIGH
42P15

invalid schema definition

Syntax Error or Access Rule Violation

Caution✅ HIGH
42P17

invalid object definition

Syntax Error or Access Rule Violation

Caution✅ HIGH
44000

WITH CHECK OPTION violation

WITH CHECK OPTION Violation

Caution✅ HIGH
53000

insufficient resources

Insufficient Resources

Safe✅ HIGH
53400

configuration limit exceeded

Insufficient Resources

Caution✅ HIGH
54000

program limit exceeded

Program Limit Exceeded

Caution✅ HIGH
54001

statement too complex

Program Limit Exceeded

Caution✅ HIGH
54011

too many columns

Program Limit Exceeded

Caution✅ HIGH
54023

too many arguments

Program Limit Exceeded

Caution✅ HIGH
55006

object in use

Object Not in Prerequisite State

Caution✅ HIGH
55P02

cannot change runtime parameter

Object Not in Prerequisite State

Caution✅ HIGH
55P04

unsafe use of new enum value

Object Not in Prerequisite State

Caution✅ HIGH
57000

operator intervention

Operator Intervention

Caution✅ HIGH
57P02

crash shutdown

Operator Intervention

Safe✅ HIGH
57P04

database dropped

Operator Intervention

Safe✅ HIGH
57P05

idle session timeout

Operator Intervention

Caution✅ HIGH
58030

I/O error

System Error

Safe✅ HIGH
58P01

undefined file

System Error

Caution✅ HIGH
58P02

duplicate file

System Error

Caution✅ HIGH
F0000

config file error

Configuration File Error

Safe✅ HIGH
F0001

lock file exists

Configuration File Error

Caution✅ HIGH
HV000

FDW error

Foreign Data Wrapper Error

Caution✅ HIGH
HV001

FDW out of memory

Foreign Data Wrapper Error

Caution✅ HIGH
HV002

FDW dynamic parameter value needed

Foreign Data Wrapper Error

Caution✅ HIGH
HV004

FDW invalid data type

Foreign Data Wrapper Error

Caution✅ HIGH
HV005

FDW column name not found

Foreign Data Wrapper Error

Caution✅ HIGH
HV006

FDW invalid data type descriptors

Foreign Data Wrapper Error

Caution✅ HIGH
HV007

FDW invalid column name

Foreign Data Wrapper Error

Caution✅ HIGH
HV008

FDW invalid column number

Foreign Data Wrapper Error

Caution✅ HIGH
HV009

FDW invalid use of null pointer

Foreign Data Wrapper Error

Caution✅ HIGH
HV00A

fdw_invalid_string_format

Foreign Data Wrapper Error

Caution✅ HIGH
HV00B

fdw_invalid_handle

Foreign Data Wrapper Error

Caution✅ HIGH
HV00C

fdw_invalid_option_index

Foreign Data Wrapper Error

Caution✅ HIGH
HV00D

fdw_invalid_option_name

Foreign Data Wrapper Error

Caution✅ HIGH
HV00J

fdw_option_name_not_found

Foreign Data Wrapper Error

Caution✅ HIGH
HV00K

fdw_reply_handle

Foreign Data Wrapper Error

Caution✅ HIGH
HV00L

fdw_unable_to_create_execution

Foreign Data Wrapper Error

Caution✅ HIGH
HV00M

fdw_unable_to_create_reply

Foreign Data Wrapper Error

Caution✅ HIGH
HV00N

fdw_unable_to_establish_connection

Foreign Data Wrapper Error

Caution✅ HIGH
HV010

fdw_function_sequence_error

Foreign Data Wrapper Error

Caution✅ HIGH
HV021

fdw_inconsistent_descriptor_information

Foreign Data Wrapper Error

Caution✅ HIGH
HV024

fdw_invalid_attribute_value

Foreign Data Wrapper Error

Caution✅ HIGH
HV090

fdw_invalid_string_length_or_buffer_length

Foreign Data Wrapper Error

Caution✅ HIGH
HV091

fdw_invalid_descriptor_field_identifier

Foreign Data Wrapper Error

Caution✅ HIGH
P0000

plpgsql_error

PL/pgSQL Error

Caution✅ HIGH
P0001

raise_exception

PL/pgSQL Error

Caution✅ HIGH
P0002

no_data_found

PL/pgSQL Error

Caution✅ HIGH
P0003

too_many_rows

PL/pgSQL Error

Caution✅ HIGH
P0004

assert_failure

PL/pgSQL Error

Caution✅ HIGH
XX001

data_corrupted

Internal Error

Safe✅ HIGH
XX002

index_corrupted

Internal Error

Safe✅ HIGH

About This Reference

This Postgres error code reference covers 250+ of the most common SQLSTATE errors encountered in production PostgreSQL deployments. Each entry includes a minimal, self-contained trigger SQL example, a verified fix with mechanism explanation, sources from the official PostgreSQL documentation, and a confidence rating. Errors are classified into three risk tiers: safe (Tier 1), caution (Tier 2), and handle-with-care (Tier 3) for errors relating to replication, WAL, or data integrity.