Raxx · internal docs

internal · gated

RCA — Woodpecker "Login to CI" buttons dead; GitHub OAuth flow unreachable

Incident ID: 2026-07-04-woodpecker-login-buttons-dead Date: 2026-07-04 Severity: SEV-2 Duration: Unknown start → 15:45 UTC resolution (operator-blocked for at least the duration of the shift) Blast radius: Single operator. No pipeline builds affected (agents healthy). No data at risk. Author: sre-agent

Summary

The Woodpecker CI login screen at https://ci.moosequest.net rendered correctly but both "Login to CI" and "Abort" buttons were completely unresponsive after clicking. The operator could pass the ALB Google-OIDC gate but could not initiate the Woodpecker GitHub OAuth login. Root cause: the ALB listener had no bypass rule for Woodpecker's own auth paths (/api/*, /authorize, /login, /logout), so the default OIDC rule intercepted the SPA's API calls and the GitHub OAuth callback, returning Google redirects instead of Woodpecker responses. Fix: added ALB listener rule at priority 25 forwarding those four path patterns directly to Woodpecker without OIDC; also reconciled the fix into infra/ci/alb.tf.

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 synthetic login smoke: scheduled curl that follows the GitHub OAuth flow headlessly (via test GitHub OAuth app or pre-issued token check against /api/user) and alerts if it fails sre-agent 2026-07-18 file after this RCA
2 Add smoke checklist step: "Click Login to CI → confirm browser redirects to github.com" (manual verification gate before declaring Phase 1 done) operator 2026-07-11 runbook updated in this PR
3 Add CloudWatch alarm: if ALB HTTPS listener has fewer than 4 rules (default + 3 bypass), fire a reliability alert — protects against a destructive apply that drops the bypass rules sre-agent 2026-07-18 file after this RCA
4 Set WOODPECKER_LOG_LEVEL=debug and add a log filter alarm for non-200 responses to /api/* — gives passive signal during incidents without a curl probe available operator / sre-agent 2026-07-18 file after this RCA

References