duplicate JSON object key value

SQLSTATE 22030 condition duplicate_json_object_key_value class 22 — Data Exception severity ERROR
Reproduced & verified on PostgreSQL 14.23, 15.18, 16.14, 17.10 and 18.4 — identical message on every version.
Last reviewed 11 Jun 2026 · Reproduced live with the SQL on this page.

Symptoms

A JSON object being built or parsed with unique-key checking contained the same key twice. PostgreSQL raises SQLSTATE 22030 (duplicate_json_object_key_value). This is the errors-new counterpart of the message-keyed JSON key page.

What the server log shows

ERROR:  duplicate JSON object key value

Why PostgreSQL raises this — what the manual says

Section 9.16 JSON Functions and Operators:

“If WITH UNIQUE KEYS is specified, there must not be any duplicate key_expression.”

While jsonb normally keeps the last value for a duplicate key, builder functions with key-uniqueness checking reject duplicates outright. A repeated key under that check yields 22030.

Common causes

How to fix it

  1. Remove the duplicate key so each appears once.
  2. Cast to jsonb without unique-key checking if last-wins is acceptable.
  3. De-duplicate keys before building the object.

Related & next steps

Reference: PostgreSQL 18 Section 9.16 “JSON Functions”.