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

  1. Remove the outage checker config value so the empty default (NullOutage) is used
  2. Implement a chaosmonkey.Outage and inject it via the deps layer if a real checker is needed
  3. 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

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


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