grafana/k6 · error
invalid time format '%s'
Error message
invalid time format '%s'
What it means
Raised by ParseExtendedDuration, k6's duration parser that adds day (d) support on top of Go durations: when a 'd' unit is present, the remainder after the days part failed time.ParseDuration or was negative. Used for all duration-typed options.
Source
Thrown at lib/types/types.go:45
func ParseExtendedDuration(data string) (result time.Duration, err error) {
// Assume millisecond values if data is provided with no units
if t, errp := strconv.ParseFloat(data, 64); errp == nil {
return time.Duration(t * float64(time.Millisecond)), nil
}
dPos := strings.IndexByte(data, 'd')
if dPos < 0 {
return time.ParseDuration(data)
}
var hours time.Duration
if dPos+1 < len(data) { // case "12d"
hours, err = time.ParseDuration(data[dPos+1:])
if err != nil {
return result, err
}
if hours < 0 {
return 0, fmt.Errorf("invalid time format '%s'", data[dPos+1:])
}
}
days, err := strconv.ParseInt(data[:dPos], 10, 64)
if err != nil {
return result, err
}
if days < 0 {
hours = -hours
}
return time.Duration(days)*24*time.Hour + hours, nil
}
// UnmarshalText converts text data to Duration
func (d *Duration) UnmarshalText(data []byte) error {
v, err := ParseExtendedDuration(string(data))
if err != nil {
return errView on GitHub (pinned to 01ffac6f24)
Solutions
- Use valid Go duration units after days, e.g. 1d12h30m or 2d
- Avoid negative components like 1d-2h
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at lib/types/types.go:45 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of grafana/k6@01ffac6f24 (2026-08-18).
Data as JSON: /api/errors/ca608f8c364a76b7.
Report an issue: GitHub.