jackc/pgx · error

array has too many dimensions: %d

Error message

array has too many dimensions: %d

What it means

Error "array has too many dimensions: %d" thrown in jackc/pgx.

Source

Thrown at pgtype/array.go:55

		elementCount *= int(d.Length)
	}

	if elementCount < 0 {
		return 0
	}

	return elementCount
}

func (dst *arrayHeader) DecodeBinary(r *pgio.Reader) error {
	// Each dimension is 8 bytes, which also bounds the Dimensions allocation below.
	numDims := r.Count(8)
	if err := r.Err(); err != nil {
		return fmt.Errorf("array header: %w", err)
	}

	if numDims > 6 {
		return fmt.Errorf("array has too many dimensions: %d", numDims)
	}

	dst.ContainsNull = r.Uint32() == 1
	dst.ElementOID = r.Uint32()

	dst.Dimensions = make([]ArrayDimension, numDims)
	for i := range dst.Dimensions {
		dst.Dimensions[i].Length = r.Int32()
		dst.Dimensions[i].LowerBound = r.Int32()
	}

	if err := r.Err(); err != nil {
		return fmt.Errorf("array header: %w", err)
	}
	return nil
}

func (src arrayHeader) EncodeBinary(buf []byte) []byte {

View on GitHub (pinned to ec1a0befd2)

When it happens

Trigger: Thrown at pgtype/array.go:55 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/f4111e4316daab9a.json. Report an issue: GitHub.