Netflix/chaosmonkey · error

%s not specified

Error message

%s not specified

What it means

Generic guard in config.Monkey.getStringSlice: fires when the config key (e.g. accounts or trackers) is absent, i.e. m.v.Get(key) returned nil because the user never specified that list in the chaosmonkey config. Note the message always says 'accounts' even when another key is missing.

Source

Thrown at config/monkey.go:321

// Trackers returns the names of the backend implementation for
// termination trackers. Used for things like logging and metrics collection
func (m *Monkey) Trackers() ([]string, error) {
	return m.getStringSlice(param.Trackers)
}

// ErrorCounter returns the names of the backend implementions for
// error counters. Intended for monitoring/alerting.
func (m *Monkey) ErrorCounter() string {
	return m.v.GetString(param.ErrorCounter)
}

func (m *Monkey) getStringSlice(key string) ([]string, error) {
	// This could be encoded natively as a list of strings, or as a string that
	// represents a list of strings, so we need to handle both cases
	t := m.v.Get(key)
	if t == nil {
		return nil, fmt.Errorf("%s not specified", param.Accounts)
	}

	switch t := t.(type) {
	default:
		return nil, fmt.Errorf("%s: unexpected type %T", param.Accounts, t)
	case []string: // When set explicitly in code
		return t, nil
	case []interface{}: // When reading from config file
		return toStrings(t)
	case string: // When reading from prana, which uses string encoding
		// Convert to list of strings
		var result []string
		err := json.Unmarshal([]byte(t), &result)
		return result, err
	}
}

// SpinnakerEndpoint returns the spinnaker endpoint

View on GitHub (pinned to eaa28fb761)

Solutions

  1. Add the missing key (e.g. accounts = [...]) to the chaosmonkey.toml config file
  2. Set the value via the corresponding environment variable if env-var reading is configured
  3. Provide sensible defaults in setDefaults so the key is never nil
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at config/monkey.go:321 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Netflix/chaosmonkey@eaa28fb761 (2026-09-03). Data as JSON: /api/errors/d807387567fea8ac. Report an issue: GitHub.