---
title: Root-cause the throw that made an auction client go inert on 2026-09-07
type: task
status: draft
description: >-
  The saga-tree supervision fix makes the next occurrence cost one subsystem and report itself, but
  the actual throw behind the 2026-09-07 auction inert-client incident is still unknown. Root-cause
  it from the deployed bundle and sourcemaps at d263a37cb.
base_uri: user:task/league/root-cause-auction-client-inert-throw.md
created_at: '2026-09-07T19:29:26.254Z'
entity_id: 2bc16f38-1be5-4591-92cd-b620c8989e64
owner_identity_uri: █████████████████████████
priority: Medium
public_read: true
tags:
  - user:tag/league-xo-football.md
updated_at: '2026-10-03T03:43:15.075Z'
visibility_analyzed_at: '2026-11-05T23:50:17.832Z'
---

## Problem

A manager's client went inert during the 2026-09-07 ████ ██████ ███████: team 12 (user 4, "Fearless Breeder") entered a maximum bid, pressed the button, and no POST was made. A page reload fixed it. The audit log shows no POST for those attempts and no client error report in the surrounding twelve hours.

The SHAPE is now understood and fixed — `rootSaga` was one `all([...])` over every watcher, so one uncaught error cancelled the whole tree and left a client that renders normally and writes nothing. That is [[██████████████████████████-███-████-███████]], shipped and deployed 2026-09-07.

What is NOT known is the actual throw. Supervision means the next occurrence costs one subsystem instead of all of them and reports itself, but it does not tell us what threw, and the same defect will keep firing until someone finds it.

## Why it left no trace

redux-saga hands an uncaught watcher error to the middleware's `onError` rather than letting it escape, so neither the `window` error listener nor the `unhandledrejection` listener in `app/core/bugsnag.js` ever saw it, and `/api/errors` stayed empty while the client was inert. **An absence of client error reports is not evidence of client health.** Any investigation that starts from the error endpoint starts from nothing.

## The lead

The likely trigger is the settlement broadcast at 2026-09-07 15:46:54 UTC, against the bundle DEPLOYED at that moment — `d263a37cb`, whose frontend was built from `6a9165480`. That is the artifact to work from, not today's source: the tree has moved a long way since, and the supervision rewrite changed the shape of every saga module.

## Approach

- Recover the deployed bundle and its sourcemaps for the incident window. Sourcemaps ship to the private `sourcemaps/` directory in the league checkout on the production host and are never public; `libs-server/symbolicate-stack.mjs` is what resolves minified frames against them.
- Reconstruct what the settlement broadcast delivered at 15:46:54Z and walk it through the auction saga handlers as they existed at `6a9165480`.
- Favour executing the shipped code over reading current source. "The fix is in the source" and "the deployed artifact had this defect" are different claims, and the second is the one that matters here.
- The auction socket and its handlers are the first place to look; the incident is a bid submission that never became a request.

## Done when

The throw is identified and recorded as an observation on this task, with enough detail to say whether it is already fixed by something in the shipped range, still latent, or needs its own change. If it needs a change, that is a follow-on task rather than part of this one.
