jackc/pgx · error

failed to scan array element %d: %w

Error message

failed to scan array element %d: %w

What it means

Error "failed to scan array element %d: %w" thrown in jackc/pgx.

Source

Thrown at pgtype/array_codec.go:300

	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)
		elemSrc, _ := r.Value()
		if err := r.Err(); err != nil {
			return fmt.Errorf("array element %d: %w", i, err)
		}
		err = elementScanPlan.Scan(elemSrc, elem)
		if err != nil {
			return fmt.Errorf("failed to scan array element %d: %w", i, err)
		}
	}

	return r.Finish()
}

func (c *ArrayCodec) decodeText(m *Map, arrayOID uint32, src []byte, array ArraySetter) error {
	uta, err := parseUntypedTextArray(string(src))
	if err != nil {
		return err
	}

	// The element loop below indexes the value sized by SetDimensions, so the
	// dimensions and the parsed elements must agree.
	if elementCount := cardinality(uta.Dimensions); elementCount != len(uta.Elements) {
		return fmt.Errorf("array dimensions describe %d elements but %d were parsed", elementCount, len(uta.Elements))
	}

View on GitHub (pinned to ec1a0befd2)

When it happens

Trigger: Thrown at pgtype/array_codec.go:300 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/d300c85d1ebd3cf1.json. Report an issue: GitHub.