Raxx · internal docs

internal · gated

RCA — RaptorProdDown false-positive: BFM blocks monitoring probe on api.raxx.app/health

Incident ID: 2026-07-14-raptor-prod-down-false-positive Date: 2026-07-14 Severity: SEV-3 (monitoring false-positive; Raptor prod healthy throughout; no user impact) Duration: ~24h 27m (first signal 2026-07-13T16:49:51Z → alert cleared 2026-07-14T17:17Z) Blast radius: Internal ops only — RaptorProdDown alert firing in Alertmanager, ops@ email spam Author: sre-agent

Summary

The RaptorProdDown Alertmanager alert fired for ~24 hours while Raptor prod was fully healthy. The blackbox_exporter probe was sending a bare GET to https://api.raxx.app/health (the CF-fronted URL). Cloudflare Bot Fight Mode (BFM) evaluated the request before CF Access and returned 403, causing probe_success == 0. Raptor itself logged continuous GET /health → 200 from internal health checks throughout. Fix: repointed the probe to the Heroku origin URL https://raxx-api-prod-a60a19e5efbf.herokuapp.com/health, which bypasses Cloudflare and correctly tests dyno health. Alert cleared within one Prometheus scrape cycle (30s).

Timeline (all times UTC)

Impact

What went well

What didn't go well

Root cause analysis

Detection

Resolution

Action items

# Action Owner Due Issue
1 Add WAF custom skip rule for SBFM on api.raxx.app/health using CLOUDFLARE_ACCESS_MGMT_TOKEN (needs Zone:WAF:Edit scope); then restore probe target to CF-fronted URL operator 2026-07-21 file separately
2 Ensure CLOUDFLARE_ACCESS_MGMT_TOKEN in Infisical has Zone:WAF:Edit scope (or provision a dedicated monitoring-probe token); document scope in docs/ops/runbooks/cf-access.md operator 2026-07-21 file separately
3 Add a new blackbox-http probe for the Heroku origin separately from the CF-fronted probe so monitoring covers both the dyno (Heroku URL) and the full stack (CF URL with WAF skip rule) sre-agent after #1 file separately
4 Add Alertmanager inhibition/silence rule that auto-suppresses RaptorProdDown if Heroku API confirms the dyno is running — reduces false-positive noise during CF layer incidents sre-agent 2026-07-28 file separately

References