ACTIVE INCIDENT · P1

/product-service/graphql Failure Chain

HTTP 502 cascade blocking product navigation, color selection, and cart operations · 94% mobile · 18 days unresolved · Accelerating
Prepared Sep 18, 2026
Org Alo Yoga · 20GE0C
Onset Aug 31, 2026
Today vs. Sep 1 10× worse
Failure Chain — Server to User
HTTP 502 Bad Gateway
/product-service/graphql
→
ApolloError
Load failed
→
Uncaught TypeError
Load failed, handled=false
→
Error-click: Collection Card Image — PDP navigation blocked
Error-click: Color Swatch Option — Variant selection blocked
addVariant function error — Cart add blocked
Collection Card Image
Clicking a product on collection or search page
Surface 1
Affected users (7d) 102,872 (3.67%)
Sessions / Events 114,065 / 202,853
Avg retries per user ~1.8×
Device split 94% mobile / 6% desktop
Worst surface Search page (5.9% of search users)
Error rate Δ vs. prior week +107%
Frustration rate Δ vs. prior week +147%
Watch it happen — 5 sessions
Color Swatch Option
Variant selection on PLP and PDP
Surface 2
Affected users (7d) 26,243 (0.94%)
Sessions / Events 27,548 / 43,617
Observed pattern Click → Loading Indicator → hang
Device split 90% mobile / 10% desktop
Affected pages PLP, Search, PDP, Home
Error rate Δ vs. prior week +43%
Frustration rate Δ vs. prior week +240%
Watch it happen — 5 sessions
GraphQL 502 & Cart Failure
Network error + addVariant blocked on PDP
Surface 3
Users w/ confirmed 502 (7d) 4,497
502 / 580 status breakdown 4,772 · 42
Cart-page 502 sessions 55 confirmed
addVariant failure Confirmed in session evidence
Top affected page products/* (526 sessions)
Error rate Δ vs. prior week +159%
Frustration rate Δ vs. prior week +281%
Watch it happen — 5 sessions
Date Users Volume Note
Aug 26–30 32–117 / day Post-deploy baseline
Aug 31 272 ⚡ Regression onset — 6× prior day
Sep 1–7 165–383 / day Sustained, no self-recovery
Sep 8–10 374–472 / day Second escalation
Sep 11 909 13× baseline
Sep 14 732 Third spike
Sep 17 1,906 ▲ 28× baseline
Sep 18 (today, partial) 117 so far Partial day — rising
Root Cause Assessment
HTTP 502 = upstream product service returning invalid response to gateway. Not a client or CDN issue — the gateway is reachable; the upstream is failing.
Mobile dominance (94%) is the primary investigative thread: different upstream routing or GraphQL operation shape for mobile user-agents vs. desktop.
Cart-page 502s (55 sessions) = purchase-intent users blocked at transaction — not just browsing friction.
Onset Aug 31 is the anchor date. FS deployed Aug 26 — 5-day gap rules out correlation. Backend deploy / config event on or around Aug 31 is the lead.
Escalation Path
Pull gateway logs for /product-service/graphql from Aug 31 onward. Find the discontinuity.
Identify any backend deploy, config change, or infra event on or immediately before Aug 31.
Compare mobile vs. desktop routing — are mobile user-agents hitting different upstream pods?
Audit GraphQL operation names in 502 requests — does failure cluster on specific queries (e.g. variant resolution, collection page)?
Consider circuit-breaker / graceful degradation at gateway layer while upstream is investigated.
Conversion Impact — Affected vs. Unaffected Mobile Users (30-day window)

Mobile users who experienced error-clicks on collection card images vs. those who did not. Funnel: Add to Cart → Checkout Page → Revenue Event (same session). 4.5M+ mobile users in window.

Cohort Total users Added to cart ATC → Checkout Checkout → Purchase ATC → Purchase
Affected mobile  error-click on collection card 301,917 88,679 (29.4%) 35.9% 45.4% 16.3%
Unaffected mobile  no error-click on collection card 4,178,954 479,563 (11.5%) 30.1% 49.2% 14.8%
−3.8pp
Checkout → Purchase gap
Affected users who reach checkout complete purchase at 45.4% vs. 49.2% for unaffected — 7.7% fewer completions at the final transaction step.
~1,210
Estimated purchases lost at checkout
31,805 affected users reached checkout. At the unaffected rate (49.2%), expected 15,648 — actual 14,438. Floor estimate: pre-cart abandonment not counted.
301,917
High-intent users hit hardest
Error targets collection-page browsers on mobile — add-to-cart rate 29.4% vs. 11.5% baseline. The incident disproportionately disrupts Alo’s highest-converting mobile segment.
Interpretation: The affected cohort’s higher ATC rate (29.4% vs. 11.5%) reflects self-selection — collection-page browsers are high-intent shoppers, not the general mobile population. The checkout-to-purchase gap (45.4% vs. 49.2%) is the most reliable comparison: both groups are at the same intent level at that funnel stage. The ~1,210 purchase shortfall is a floor — users who abandoned before adding to cart are not captured.
Data source: Fullstory behavioral analytics, org 20GE0C, 7-day window ending Sep 17 2026. All figures are observed population totals, not estimates.
User counts (103K, 26K, 4.8K): Exact counts of users who triggered each signal in the window. Not sampled — statistical confidence interval does not apply.
Rate changes (Δ%): Comparison of error/frustration rate in sessions containing the signal vs. all sessions in the same window. With n > 26,000 in the smallest cohort, the margin of error is <0.5% at 99% confidence on any rate estimate. The Δ reflects genuine behavioral divergence, not sampling noise.
Regression onset (Aug 31): Daily trend shows a discontinuous 6× single-day spike with no precursor drift. The onset date is not estimated — it is directly observable in the daily series.
Cart failure: Confirmed in 1 of 3 color-swatch sessions reviewed (parsonskrissy@yahoo.com, Worcester MA). Exact cart-fail user count across the full population requires a separate metric query not included in this report.
Session evidence: 15 replay sessions provided (5 per surface). All reflect live recorded user behavior from the past 7 days, not synthetic or reproduced data.
Conversion comparison methodology: Affected segment = mobile users who triggered an error-click on the Collection Card Image element in last 30 days (n=301,917). Unaffected segment = mobile users who did not (n=4,178,954). Funnel computed over the same 30-day window. The affected cohort’s higher add-to-cart entry rate (29.4% vs. 11.5%) reflects population composition — collection-page browsers skew high-intent. The checkout-to-purchase gap (45.4% vs. 49.2%) controls for intent by comparing users at the same funnel stage. The ~1,210 purchase estimate is 31,805 × (49.2% − 45.4%) and represents a floor.