Files
wehub-resource-sync 4b6817381b
CI (OpenClaw E2E) / openclaw test (push) Has been cancelled
CI / coverage-report (push) Has been cancelled
CI / test-kubernetes (push) Has been cancelled
CI / should-run-thorough (push) Has been cancelled
CI / test-thorough (cloudwatch-demo) (push) Has been cancelled
CI / test-thorough (flink-ecs) (push) Has been cancelled
CI / test-thorough (upstream-lambda) (push) Has been cancelled
CI / test-thorough (prefect-ecs-fargate) (push) Has been cancelled
Release / build-binaries (zip, opensre.exe, onefile, windows-latest, windows-x64) (push) Has been cancelled
Benchmark image — build + push to ECR (any adapter) / build + push (push) Has been cancelled
CI / quality (ubuntu-latest) (push) Has been cancelled
CI / test (tools-runtime) (push) Has been cancelled
CI / test (e2e-general) (push) Has been cancelled
CI / test (cli-runtime) (push) Has been cancelled
CI / test (e2e-provider-and-openclaw) (push) Has been cancelled
CI / test (integrations-and-misc) (push) Has been cancelled
Release / verify (push) Has been cancelled
Release / build-python-dist (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, macos-15-intel, darwin-x64) (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, macos-latest, darwin-arm64) (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04, linux-x64) (push) Has been cancelled
Release / publish-release (push) Has been cancelled
Release / publish-main-release (push) Has been cancelled
Interactive Shell Live (PR + post-merge) / turn-checks (no-LLM) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Interactive Shell Live (PR + post-merge) / turn-live shard ${{ matrix.shard_index }} (push) Has been cancelled
Release / prepare (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04-arm, linux-arm64) (push) Has been cancelled
Synthetic Deterministic Tests / Synthetic offline (deterministic) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:10:45 +08:00

3.4 KiB

Scenario 005 — Multi-AZ Failover

Overview

Field Value
Instance payments-prod
Outage Duration ~45 seconds (RDS promotion); connections recovered by 08:07Z
Root Cause Category infrastructure
Status Resolved

Root Cause: RDS Multi-AZ automatic failover triggered by a health check failure on the primary host.


How to Run

python -m cli tests synthetic --scenario 005-failover

The Trap

⚠️ This scenario is intentionally misleading.

During the failover window, metrics show:

  • Connections → zero
  • CPU and I/O → sharp drop

This pattern resembles connection exhaustion or resource saturation — but it is not. These are symptoms, not causes.

The true root cause is only visible in RDS control-plane events, which must take precedence over metrics.


What Actually Happened

08:04:18Z  Health check failure detected on primary host
08:04:21Z  Failover initiated
08:04:58Z  Failover completed (standby promoted)
08:05:04Z  Instance available — workload resumed

Total downtime: ~45 seconds (expected for Multi-AZ failover)


Expected Reasoning

A correct agent should:

  • Identify this as an infrastructure-level event
  • Recognize a Multi-AZ failover triggered by a health check failure
  • Use RDS events as the primary evidence source
  • Treat CloudWatch metrics as secondary signals
  • The RDS control-plane event timeline must be the decisive signal driving the diagnosis
  • Explain the causal chain:
health check failure
→ failover initiated
→ standby promoted
→ DNS endpoint updated
→ brief connection drop (~45s)
→ recovery

Reviewer Checklist

Root Cause

  • Classified as infrastructure (not connection/resource exhaustion)
  • Multi-AZ failover explicitly mentioned

Evidence

  • aws_rds_events explicitly used as the primary reasoning signal
  • Failover diagnosis is derived from the RDS event timeline (not inferred from metrics)
  • Metrics/logs are used only as supporting context
  • Metrics-only reasoning should be considered incorrect

Reasoning

  • Health check failure → failover trigger chain explained
  • Connection drop attributed to failover window, not exhaustion

Resolution

  • System recognized as already recovered
  • No unnecessary remediation suggested

Common Failure Modes

Misdiagnosis Why It's Wrong
Connection exhaustion Connections dropped because of failover, not vice versa
Resource saturation CPU/I/O drop is a symptom of failover
Ongoing outage System recovered at 08:05:04Z
Metrics-only analysis Control-plane events are the decisive signal

Reviewer Notes

This scenario evaluates whether the agent can correctly prioritize control-plane signals (RDS events) over data-plane metrics (CloudWatch).

Correct handling demonstrates:

  • Strong signal prioritization
  • Accurate causal reasoning
  • Understanding of AWS Multi-AZ failover behavior

Agents that rely primarily on metrics without explicitly referencing RDS control-plane events should fail this scenario.


What This Tests

  • Signal prioritization (control-plane vs metrics)
  • Correct identification of Multi-AZ failover behavior
  • Causal reasoning under misleading metric patterns
  • Ability to distinguish symptoms from root causes
  • Recognition of resolved vs active incidents