Raxx · internal docs

internal · gated

RCA — WAF SizeRestrictions_BODY blocked all GitHub webhooks + WP v3 YAML parser broke all pipelines

Incident ID: 2026-07-04-waf-webhook-block-batch1-parse-error Date: 2026-07-04 Severity: SEV-2 Duration: ~40m total (detection → resolution; pipelines fully green by 00:41 UTC) Blast radius: All GitHub webhook-triggered Woodpecker pipelines for TradeMasterAPI; Wave A batch-1 PR-gate verification blocked. No production user traffic affected (CI-only). Author: sre-agent

Summary

Two compounding failures prevented any Woodpecker pipeline from running during the Wave A batch-1 CI migration verification window. First, the ALB WAF SizeRestrictions_BODY rule (8192-byte body cap in AWSManagedRulesCommonRuleSet) blocked all GitHub webhook deliveries to /api/hook with HTTP 403 — real PR/push payloads are 12–36 KB and exceeded the cap. Second, after the WAF fix was applied and PR #4043 merged, a GHA expression syntax fragment (${{) in a YAML comment inside .woodpecker/console-degraded-auto-file.yaml triggered the Woodpecker v3 substitution pre-processor and caused ALL pipelines to fail at compile time with "unable to parse variable name". Both issues were resolved by 00:41 UTC via Terraform apply (WAF) and three incremental PRs (#4046, #4048, #4049) to remove the offending patterns.

Timeline (all times UTC, 2026-07-04)

Impact

What went well

What didn't go well

Root cause analysis

Detection

Resolution

Action items

# Action Owner Due Issue
1 Add lint step to CI: grep -rc '\${{' .woodpecker/ and grep -rn '\${[A-Z_]*:-' .woodpecker/ — fail PR if either finds matches sre-agent / feature-developer 2026-07-11 (file)
2 Add admin:repo_hook scope to operator GitHub token used for CI diagnostics, or document the fresh-push workaround in this runbook operator 2026-07-11 (document)
3 Add WP v3 YAML pre-processor constraint to Wave A migration checklist (docs/ops/runbooks/ci-woodpecker.md §v3.x pipeline YAML breaking changes) sre-agent 2026-07-04 done (this RCA)
4 Confirm AllowGitHubWebhook rule covers all future webhook endpoint changes — add a Terraform test/assertion sre-agent 2026-07-11 (file)

References