jackc/pgx · error
invalid array, expected ']' got
Error message
invalid array, expected ']' got %v
What it means
After parsing '[lower:upper' in an explicit array dimension, parseUntypedTextArray expected the closing ']' but read something else. The dimension pair is unterminated or malformed.
Solutions
- Close every dimension with ']' before the next '[' or the '=' separator
- Use the plain '{...}' array form without explicit dimensions
- Regenerate the literal from a trusted encoder instead of string concatenation
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at pgtype/array.go:157 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: /api/errors/1bbaeb436156632b.
Report an issue: GitHub.
Appendix: source
Thrown at pgtype/array.go:157
return nil, fmt.Errorf("invalid array: %w", err)
}
if r != ':' {
return nil, fmt.Errorf("invalid array, expected ':' got %v", r)
}
upper, err := arrayParseInteger(buf)
if err != nil {
return nil, fmt.Errorf("invalid array: %w", err)
}
r, _, err = buf.ReadRune()
if err != nil {
return nil, fmt.Errorf("invalid array: %w", err)
}
if r != ']' {
return nil, fmt.Errorf("invalid array, expected ']' got %v", r)
}
explicitDimensions = append(explicitDimensions, ArrayDimension{LowerBound: lower, Length: upper - lower + 1})
}
r, _, err = buf.ReadRune()
if err != nil {
return nil, fmt.Errorf("invalid array: %w", err)
}
}
if r != '{' {
return nil, fmt.Errorf("invalid array, expected '{' got %v", r)
}
implicitDimensions := []ArrayDimension{{LowerBound: 1, Length: 0}}
// Consume all initial opening brackets. This provides number of dimensions.View on GitHub (pinned to ec1a0befd2)