{"record":{"id":"d807387567fea8ac","repo":"Netflix/chaosmonkey","slug":"s-not-specified","errorCode":null,"errorMessage":"%s not specified","messagePattern":"(.+?) not specified","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"config/monkey.go","lineNumber":321,"sourceCode":"\n// Trackers returns the names of the backend implementation for\n// termination trackers. Used for things like logging and metrics collection\nfunc (m *Monkey) Trackers() ([]string, error) {\n\treturn m.getStringSlice(param.Trackers)\n}\n\n// ErrorCounter returns the names of the backend implementions for\n// error counters. Intended for monitoring/alerting.\nfunc (m *Monkey) ErrorCounter() string {\n\treturn m.v.GetString(param.ErrorCounter)\n}\n\nfunc (m *Monkey) getStringSlice(key string) ([]string, error) {\n\t// This could be encoded natively as a list of strings, or as a string that\n\t// represents a list of strings, so we need to handle both cases\n\tt := m.v.Get(key)\n\tif t == nil {\n\t\treturn nil, fmt.Errorf(\"%s not specified\", param.Accounts)\n\t}\n\n\tswitch t := t.(type) {\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"%s: unexpected type %T\", param.Accounts, t)\n\tcase []string: // When set explicitly in code\n\t\treturn t, nil\n\tcase []interface{}: // When reading from config file\n\t\treturn toStrings(t)\n\tcase string: // When reading from prana, which uses string encoding\n\t\t// Convert to list of strings\n\t\tvar result []string\n\t\terr := json.Unmarshal([]byte(t), &result)\n\t\treturn result, err\n\t}\n}\n\n// SpinnakerEndpoint returns the spinnaker endpoint","sourceCodeStart":303,"sourceCodeEnd":339,"githubUrl":"https://github.com/Netflix/chaosmonkey/blob/eaa28fb761c0ebe8644d1333e5d164e9cc3071e9/config/monkey.go#L303-L339","documentation":"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.","triggerScenarios":"Thrown at config/monkey.go:321 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add the missing key (e.g. accounts = [...]) to the chaosmonkey.toml config file","Set the value via the corresponding environment variable if env-var reading is configured","Provide sensible defaults in setDefaults so the key is never nil"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"eaa28fb761c0ebe8644d1333e5d164e9cc3071e9","analyzedAt":"2026-09-03T17:04:39.020Z","contentChangedAt":"2026-09-03T17:04:39.020Z","schemaVersion":2},"datasetVersion":"2026-09-08T15:18:49.778Z"}