SQLSTATE 54023 ERROR Class 54: Program Limit Exceeded

too_many_arguments Too Many Arguments — SQLSTATE 54023

SQLSTATE 54023 (too_many_arguments): A hard internal limit was exceeded (columns, arguments, or statement size).

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

Symptoms

The server reports SQLSTATE 54023 (too_many_arguments), a condition in the Program Limit Exceeded class.

  • The error is written to the server log and returned to the client carrying SQLSTATE 54023.
  • 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 too_many_arguments THEN.

Environment

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

Most often seen under load or on under-provisioned servers; correlate it with system metrics (CPU, memory, disk, connection count) at the time of the error.

Root Cause

54023 belongs to Class 54 — Program Limit Exceeded. In this class, a hard internal limit was exceeded (columns, arguments, or statement size).

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

Diagnostic Queries

Recovery

Simplify the schema or query to stay within limits — fewer columns/arguments, smaller statements, normalized design.

Reference: PostgreSQL error codes — Class 54 (Program Limit Exceeded).

Was this helpful?