Netflix/chaosmonkey · error

not terminating: problem checking if there is an outage

Error message

not terminating: problem checking if there is an outage

What it means

Returned by term.Terminate when the outage-check dependency (Ou.Outage) errors; by design Chaos Monkey errs on the safe side and refuses to terminate anything because it cannot confirm no outage is in progress.

Source

Thrown at term/term.go:67

// based on the app, account, region, stack, cluster passed
//
// region, stack, and cluster may be blank
func Terminate(d deps.Deps, app string, account string, region string, stack string, cluster string) error {
	enabled, err := d.MonkeyCfg.Enabled()
	if err != nil {
		return errors.Wrap(err, "not terminating: could not determine if monkey is enabled")
	}

	if !enabled {
		log.Println("not terminating: enabled=false")
		return nil
	}

	problem, err := d.Ou.Outage()

	// If the check for ongoing outage fails, we err on the safe side nd don't terminate an instance
	if err != nil {
		return errors.Wrapf(err, "not terminating: problem checking if there is an outage")
	}

	if problem {
		log.Println("not terminating: outage in progress")
		return nil
	}

	accountEnabled, err := d.MonkeyCfg.AccountEnabled(account)

	if err != nil {
		return errors.Wrap(err, "not terminating: could not determine if account is enabled")
	}

	if !accountEnabled {
		log.Printf("Not terminating: account=%s is not enabled in Chaos Monkey", account)
		return nil
	}

View on GitHub (pinned to eaa28fb761)

Solutions

  1. Fix or restore the outage-check backend service
  2. Retry when the outage checker is healthy again
  3. Make the outage checker highly available if it is a single point of failure
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at term/term.go:67 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/dfef7019a7194461. Report an issue: GitHub.