jackc/pgx · error
array claims %d elements but only %d bytes remain
Error message
array claims %d elements but only %d bytes remain
What it means
Error "array claims %d elements but only %d bytes remain" thrown in jackc/pgx.
Source
Thrown at pgtype/array_codec.go:275
oid: oid,
formatCode: format,
}
}
func (c *ArrayCodec) decodeBinary(m *Map, arrayOID uint32, src []byte, array ArraySetter) error {
r := pgio.NewReader(src)
var arrayHeader arrayHeader
err := arrayHeader.DecodeBinary(r)
if err != nil {
return err
}
elementCount := cardinality(arrayHeader.Dimensions)
// Each element carries at minimum a 4-byte length header, so elementCount cannot exceed the
// remaining bytes / 4. This bounds the allocation in SetDimensions and the loop below against a
// malicious server claiming huge dimensions in a small message.
if maxElements := r.Remaining() / 4; elementCount > maxElements {
return fmt.Errorf("array claims %d elements but only %d bytes remain", elementCount, r.Remaining())
}
err = array.SetDimensions(arrayHeader.Dimensions)
if err != nil {
return err
}
if elementCount == 0 {
return r.Finish()
}
elementScanPlan := c.ElementType.Codec.PlanScan(m, c.ElementType.OID, BinaryFormatCode, array.ScanIndex(0))
if elementScanPlan == nil {
elementScanPlan = m.PlanScan(c.ElementType.OID, BinaryFormatCode, array.ScanIndex(0))
}
for i := range elementCount {
elem := array.ScanIndex(i)View on GitHub (pinned to ec1a0befd2)
When it happens
Trigger: Thrown at pgtype/array_codec.go:275 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/2e1cd1a45b9beef4.json.
Report an issue: GitHub.