jackc/pgx · error
invalid length for bit/varbit: bitLen=%d: %w
Error message
invalid length for bit/varbit: bitLen=%d: %w
What it means
Error "invalid length for bit/varbit: bitLen=%d: %w" thrown in jackc/pgx.
Source
Thrown at pgtype/bits.go:184
if src == nil {
return scanner.ScanBits(Bits{})
}
r := pgio.NewReader(src)
bitLen := r.Int32()
if err := r.Err(); err != nil {
return fmt.Errorf("invalid length for bit/varbit: %w", err)
}
if bitLen < 0 {
return fmt.Errorf("invalid length for bit/varbit: bitLen=%d", bitLen)
}
// Finish rejects trailing bytes, so together with the read below the data
// must be exactly the number of bytes bitLen calls for.
data := r.Bytes((int(bitLen) + 7) / 8)
if err := r.Finish(); err != nil {
return fmt.Errorf("invalid length for bit/varbit: bitLen=%d: %w", bitLen, err)
}
buf := make([]byte, len(data))
copy(buf, data)
return scanner.ScanBits(Bits{Bytes: buf, Len: bitLen, Valid: true})
}
type scanPlanTextAnyToBitsScanner struct{}
func (scanPlanTextAnyToBitsScanner) Scan(src []byte, dst any) error {
scanner := (dst).(BitsScanner)
if src == nil {
return scanner.ScanBits(Bits{})
}
bitLen := len(src)View on GitHub (pinned to ec1a0befd2)
When it happens
Trigger: Thrown at pgtype/bits.go:184 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of jackc/pgx@ec1a0befd2 (2026-08-04).
Data as JSON: /data/errors/e4630fee14d97024.json.
Report an issue: GitHub.