bit string too long for type bit varying(n)
Symptoms
A statement failed with SQLSTATE 22001 (string_data_right_truncation), reported at severity ERROR. This is a Data Exception condition: PostgreSQL emits the message bit string too long for type bit varying(n).
- The client receives SQLSTATE
22001(string data right truncation). - The operation is rejected at
ERRORlevel; the statement does not complete.
What the server log shows
ERROR: bit string too long for type bit varying(n)
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 22001 carries the condition name string_data_right_truncation 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.