jackc/pgx · error
Received an invalid size for an interval
Error message
Received an invalid size for an interval: %w
What it means
Wrapping error from the binary interval scan plan: after reading the three fixed components (microseconds, days, months) the pgio.Reader still had bytes left. A binary interval is exactly 16 bytes; any other size means corrupted data.
Solutions
- Treat as protocol/data corruption — verify the column is interval
- Check for driver/server version mismatch
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at pgtype/interval.go:190 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/74f200bb43a66d67.
Report an issue: GitHub.
Appendix: source
Thrown at pgtype/interval.go:190
}
type scanPlanBinaryIntervalToIntervalScanner struct{}
func (scanPlanBinaryIntervalToIntervalScanner) Scan(src []byte, dst any) error {
scanner := (dst).(IntervalScanner)
if src == nil {
return scanner.ScanInterval(Interval{})
}
r := pgio.NewReader(src)
microseconds := r.Int64()
days := r.Int32()
months := r.Int32()
if err := r.Finish(); err != nil {
return fmt.Errorf("Received an invalid size for an interval: %w", err)
}
return scanner.ScanInterval(Interval{Microseconds: microseconds, Days: days, Months: months, Valid: true})
}
type scanPlanTextAnyToIntervalScanner struct{}
func (scanPlanTextAnyToIntervalScanner) Scan(src []byte, dst any) error {
scanner := (dst).(IntervalScanner)
if src == nil {
return scanner.ScanInterval(Interval{})
}
var microseconds int64
var days int32
var months int32
View on GitHub (pinned to ec1a0befd2)