{"record":{"id":"dfef7019a7194461","repo":"Netflix/chaosmonkey","slug":"not-terminating-problem-checking-if-there-is-an-o","errorCode":null,"errorMessage":"not terminating: problem checking if there is an outage","messagePattern":"not terminating: problem checking if there is an outage","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"term/term.go","lineNumber":67,"sourceCode":"// based on the app, account, region, stack, cluster passed\n//\n// region, stack, and cluster may be blank\nfunc Terminate(d deps.Deps, app string, account string, region string, stack string, cluster string) error {\n\tenabled, err := d.MonkeyCfg.Enabled()\n\tif err != nil {\n\t\treturn errors.Wrap(err, \"not terminating: could not determine if monkey is enabled\")\n\t}\n\n\tif !enabled {\n\t\tlog.Println(\"not terminating: enabled=false\")\n\t\treturn nil\n\t}\n\n\tproblem, err := d.Ou.Outage()\n\n\t// If the check for ongoing outage fails, we err on the safe side nd don't terminate an instance\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"not terminating: problem checking if there is an outage\")\n\t}\n\n\tif problem {\n\t\tlog.Println(\"not terminating: outage in progress\")\n\t\treturn nil\n\t}\n\n\taccountEnabled, err := d.MonkeyCfg.AccountEnabled(account)\n\n\tif err != nil {\n\t\treturn errors.Wrap(err, \"not terminating: could not determine if account is enabled\")\n\t}\n\n\tif !accountEnabled {\n\t\tlog.Printf(\"Not terminating: account=%s is not enabled in Chaos Monkey\", account)\n\t\treturn nil\n\t}\n","sourceCodeStart":49,"sourceCodeEnd":85,"githubUrl":"https://github.com/Netflix/chaosmonkey/blob/eaa28fb761c0ebe8644d1333e5d164e9cc3071e9/term/term.go#L49-L85","documentation":"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.","triggerScenarios":"Thrown at term/term.go:67 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Fix or restore the outage-check backend service","Retry when the outage checker is healthy again","Make the outage checker highly available if it is a single point of failure"],"exampleFix":null,"handlingStrategy":"try-catch","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"}