Netflix/chaosmonkey · error
unknown outage provider: %s
Error message
unknown outage provider: %s
What it means
GetOutage returns the built-in NullOutage checker. Like the error counter, only the null provider exists, so any non-empty cfg.OutageChecker() value produces 'unknown outage provider: %s'. This is a deliberate guard against configuring an outage provider this build cannot supply.
Source
Thrown at outage/outage.go:41
)
// NullOutage is a no-op outage checker
type NullOutage struct{}
// Outage always returns false
func (n NullOutage) Outage() (bool, error) {
return false, nil
}
func init() {
deps.GetOutage = GetOutage
}
// GetOutage returns a do-nothing outage checker
func GetOutage(cfg *config.Monkey) (chaosmonkey.Outage, error) {
checker := cfg.OutageChecker()
if checker != "" {
return nil, errors.Errorf("unknown outage provider: %s", checker)
}
return NullOutage{}, nil
}
View on GitHub (pinned to eaa28fb761)
Solutions
- Remove the outage checker config value so the empty default (NullOutage) is used
- Implement a chaosmonkey.Outage and inject it via the deps layer if a real checker is needed
- Audit the config for stray outage_checker keys from another deployment
Example fix
// before (config) outage_checker: "pagerduty" // after // remove outage_checker key entirely
Defensive patterns
Strategy: validation
Validate before calling
if checker := cfg.OutageChecker(); checker != "" {
return fmt.Errorf("only the null outage checker is supported; got %q", checker)
} Try / catch
if _, err := outage.GetOutage(cfg); err != nil {
log.Fatalf("outage checker config invalid: %v", err)
} Prevention
- Leave outage_checker unset unless a custom checker is wired via deps
- Validate config keys against a whitelist at startup
- Audit configs copied between environments for unsupported keys
When it happens
Trigger: Setting outage_checker (or equivalent) in the monkey config to any non-empty string and calling GetOutage.
Common situations: Copying config from an environment that integrates a custom outage checker; typo where the intent was to leave the checker unset; documentation mentioning third-party outage providers unsupported here.
Related errors
- unsupported error counter: %s
- retrieve cloud provider failed
- %s not specified
- unknown group: %v
- schedule already exists
AI-assisted analysis of Netflix/chaosmonkey@eaa28fb761 (2026-09-03).
Data as JSON: /api/errors/6bf4c6e65a9bbd53.
Report an issue: GitHub.