Runbook: chaos DLQ rate breach
Alert source: packages/testkit/alerts/chaos-assertions.rules.yaml
Canonical markdown: docs/runbooks/chaos-dlq-rate-breach.md
Severity: critical (fires only during a chaos run).
Symptom
During the current chaos run, DLQ volume exceeded 1% of ingress.
Likely cause
- A fault exhausted the adapter's retry budget faster than the idempotency cache could absorb the replay.
expire-idempotency-cachefired while a burst of retries was in flight.- The adapter's
nacksemantics don't actually requeue under the injected fault (adapter bug).
Immediate mitigation
# The chaos harness is the testkit chaos driver (packages/testkit/src/chaos)
# — stop the run by interrupting the harness process (Ctrl-C / SIGINT);
# the driver's stop() emits the run report on the way out.
Root-cause investigation
# The chaos report is emitted by the driver's stop(); inspect the DLQ:
declaragent dlq list --kind source --source <id> --json
Post-incident
- Capture: DLQ sample, fault correlation, adapter + config under test.
- Close when: a regression test reproduces the DLQ breach and a fix keeps the rate below 0.1%.
- Post-mortem: mandatory — DLQ breaches under chaos block Phase-6 exit.