lower bound cannot equal upper bound
Symptoms
A statement failed with SQLSTATE 2201G (invalid_argument_for_width_bucket_function), reported at severity ERROR. This is a Data Exception condition: PostgreSQL emits the message lower bound cannot equal upper bound.
- The client receives SQLSTATE
2201G(invalid argument for width bucket function). - The operation is rejected at
ERRORlevel; the statement does not complete.
What the server log shows
ERROR: lower bound cannot equal upper bound
Why PostgreSQL raises this
Class 22 (Data Exception) is raised at run time when a value cannot be represented, converted, or processed by the requested type or function — bad input syntax, out-of-range values, or invalid arguments.
As described in PostgreSQL’s Chapter 8 Data Types and Appendix A (PostgreSQL Error Codes), SQLSTATE 2201G carries the condition name invalid_argument_for_width_bucket_function in class Data Exception. (Paraphrased — see the linked reference for the exact wording.)
Common causes
- A literal or parameter does not match the target type’s input format.
- A value exceeds the range or length the type allows.
- A function received an argument outside its valid domain.
- An encoding, cast, or format conversion failed.
How to fix it
- Validate and sanitize the input value before sending it.
- Cast explicitly to the intended type and confirm the format.
- Widen the column/type or clamp the value to the supported range.
- Reproduce with the exact literal to see which value is rejected.
Version applicability
This message is present in PostgreSQL 15, 16, 17, 18 and 19.
Related & next steps
Reference: PostgreSQL Chapter 8 Data Types.