grafana/k6 · error
scenario '%s' doesn't have a specified executor type
Error message
scenario '%s' doesn't have a specified executor type
What it means
Raised while unmarshalling the scenarios/options JSON: a scenario entry exists but has no executor field, so k6 cannot determine which executor (load profile) to instantiate for it.
Source
Thrown at lib/executors.go:184
if len(data) == 0 {
return nil
}
if len(data) == 4 && string(data) == "null" {
return nil
}
// TODO: use a more sophisticated combination of dec.Token() and dec.More(),
// which would allow us to support both arrays and maps for this config?
var protoConfigs map[string]protoExecutorConfig
if err := StrictJSONUnmarshal(data, &protoConfigs); err != nil {
return err
}
result := make(ScenarioConfigs, len(protoConfigs))
for k, v := range protoConfigs {
if v.executorType == "" {
return fmt.Errorf("scenario '%s' doesn't have a specified executor type", k)
}
config, err := GetParsedExecutorConfig(k, v.executorType, v.rawJSON)
if err != nil {
return err
}
result[k] = config
}
*scs = result
return nil
}
// Validate checks if all of the specified executor options make sense
func (scs ScenarioConfigs) Validate() (errors []error) {
for name, exec := range scs {
if execErr := exec.Validate(); len(execErr) != 0 {
errors = append(errors,View on GitHub (pinned to 01ffac6f24)
Solutions
- Add an executor property (e.g. "constant-vus", "shared-iterations") to the named scenario
- Remove the incomplete scenario entry if it is not needed
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at lib/executors.go:184 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/f6db1c41ac134c23.
Report an issue: GitHub.