grafana/k6 · error
the number of preAllocatedVUs can't be negative
Error message
the number of preAllocatedVUs can't be negative
What it means
ConstantArrivalRateConfig.Validate rejected a negative preAllocatedVUs value. Pre-allocated VUs are a count of initialized VUs and cannot be negative; zero is allowed but means all VUs are booted lazily at runtime.
Source
Thrown at lib/executor/constant_arrival_rate.go:114
errors = append(errors, fmt.Errorf("the iteration rate must be more than 0"))
}
if carc.TimeUnit.TimeDuration() <= 0 {
errors = append(errors, fmt.Errorf("the timeUnit must be more than 0"))
}
if !carc.Duration.Valid {
errors = append(errors, fmt.Errorf("the duration is unspecified"))
} else if carc.Duration.TimeDuration() < minDuration {
errors = append(errors, fmt.Errorf(
"the duration must be at least %s, but is %s", minDuration, carc.Duration,
))
}
if !carc.PreAllocatedVUs.Valid {
errors = append(errors, fmt.Errorf("the number of preAllocatedVUs isn't specified"))
} else if carc.PreAllocatedVUs.Int64 < 0 {
errors = append(errors, fmt.Errorf("the number of preAllocatedVUs can't be negative"))
}
if !carc.MaxVUs.Valid {
// TODO: don't change the config while validating
carc.MaxVUs.Int64 = carc.PreAllocatedVUs.Int64
} else if carc.MaxVUs.Int64 < carc.PreAllocatedVUs.Int64 {
errors = append(errors, fmt.Errorf("maxVUs can't be less than preAllocatedVUs"))
}
return errors
}
// GetExecutionRequirements returns the number of required VUs to run the
// executor for its whole duration (disregarding any startTime), including the
// maximum waiting time for any iterations to gracefully stop. This is used by
// the execution scheduler in its VU reservation calculations, so it knows how
// many VUs to pre-initialize.
func (carc ConstantArrivalRateConfig) GetExecutionRequirements(et *lib.ExecutionTuple) []lib.ExecutionStep {View on GitHub (pinned to 01ffac6f24)
Solutions
- Set preAllocatedVUs to 0 or a positive number
- If it was omitted, set it explicitly — but the error means it was present and negative, so fix the sign
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at lib/executor/constant_arrival_rate.go:114 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/8e4f98cd04f5d7c6.
Report an issue: GitHub.