---
title: Fix auction client to rejoin on WebSocket reconnect
type: task
status: completed
description: >-
  Auction client failed to dispatch AUCTION_JOIN after a WebSocket reconnect; fixed by a takeLatest
  WEBSOCKET_RECONNECTED watcher in app/core/auction/sagas.js (league ebf97a0cd).
base_uri: user:task/league/fix-auction-websocket-rejoin-on-reconnect.md
created_at: '2026-04-29T04:35:09.544Z'
entity_id: 05c40880-9558-4a02-a821-e6c5dcc87cf3
finished_at: '2026-09-30T19:35:54.174Z'
observations:
  - ████████████████████████████████████████████████
  - ████████████████████████████████████████████████
  - ████████████████████████████████████████████████
owner_identity_uri: █████████████████████████
priority: Low
public_read: true
started_at: '2026-09-30T19:34:55.998Z'
tags:
  - user:tag/league-xo-football.md
updated_at: '2026-09-30T19:35:59.375Z'
visibility_analyzed_at: '2026-11-05T23:49:18.783Z'
---

Transport-level WebSocket reconnect already runs (`app/core/ws/sagas.js:23-33` — `reconnect()` loops `connect()` with a 2-second backoff and dispatches `wsActions.WEBSOCKET_RECONNECTED` on success). The auction sagas did not listen for `WEBSOCKET_RECONNECTED`, so after a mid-auction reconnect the client had no path to re-fetch the auction state and a manager who dropped mid-block was left stranded until a manual reload. Shipped in league `ebf97a0cd`.

## Plan

- [x] Add a `takeLatest(wsActions.WEBSOCKET_RECONNECTED, rejoin_auction)` watcher in `app/core/auction/sagas.js` (league `ebf97a0cd`).
- [x] Guard `rejoin_auction` on `is_joined` and call `join_auction` with `AUCTION_JOIN`, so the server re-initialises off `join()` calling `_send_auction_init` at `api/sockets/auction.mjs` (league `ebf97a0cd`).
- [x] Mirror the scoreboard module's `takeLatest(wsActions.WEBSOCKET_RECONNECTED, reregister)` pattern (league `ebf97a0cd`).
- [x] Register the watcher in the `auction_sagas` export array and remove the TODO comment (league `ebf97a0cd`).
- [x] Cover the reconnect path with `test/auction.reconnect.spec.mjs` (league `ebf97a0cd`).

## Source

Captured in Apple Notes "Auction View" (mod 2020-09-03); migrated during Apple Notes triage on 2026-04-29.
