SQLSTATE 42883 ERROR Class 42: Syntax Error or Access Rule Violation

undefined_function Undefined Function — SQLSTATE 42883

No function or operator matches the name and argument types.

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

Symptoms

No function or operator matches the name and argument types.

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

Environment

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

Reproduce with the exact statement and read the full message in the server log (raise log_min_messages / set log_min_error_statement for more context).

Root Cause

PostgreSQL resolves functions by name AND argument types; none matched the call.

Common causes:

  • Wrong argument types (for example passing text where numeric is expected).
  • A missing extension that provides the function.
  • Wrong schema or search_path.
  • Relying on an implicit cast that does not exist.

Diagnostic Queries

Recovery

Steps to resolve 42883:

  1. Check the signature: \df functionname in psql.
  2. Cast arguments to the expected types.
  3. Install/enable the providing extension: CREATE EXTENSION ...;.
  4. Schema-qualify the function or fix search_path.

Reference: PostgreSQL error codes — Class 42 (Syntax Error or Access Rule Violation).

Was this helpful?