case not found

SQLSTATE 20000 condition case_not_found class 20 — Case Not Found severity ERROR
Reproduced & verified on PostgreSQL 14.23, 15.18, 16.14, 17.10 and 18.4 — identical message on every version.
Last reviewed 8 Jun 2026 · Reproduced live with the SQL on this page.

Symptoms

A statement failed with SQLSTATE 20000 (case_not_found), reported at severity ERROR. This is a Case Not Found condition: PostgreSQL emits the message case not found.

What the server log shows

ERROR:  case not found
HINT:  CASE statement is missing ELSE part.

Why PostgreSQL raises this

PostgreSQL raises this error from the area indicated by its SQLSTATE class. The condition name pinpoints the specific rule that was violated.

As described in PostgreSQL’s Appendix A PostgreSQL Error Codes, SQLSTATE 20000 carries the condition name case_not_found in class Case Not Found. (Paraphrased — see the linked reference for the exact wording.)

Common causes

How to fix it

  1. Use the SQLSTATE condition name to identify the exact rule.
  2. Correct the offending input, object, or state and retry.
  3. See the linked full SQLSTATE reference for detailed guidance.

Version applicability

This message is present in PostgreSQL 15, 16, 17, 18 and 19.

Related & next steps

Reference: PostgreSQL Appendix A PostgreSQL Error Codes.