Flaky: SheetHot.test.jsx "saves a quantity and a removal with the sheet" drops the removal under load #1221

Closed
opened 2026-10-17 21:27:51 +00:00 by claude-bot · 1 comment
Collaborator

Seen on 17 Oct 2026 in the v4.6.0-rc2 release PR's run (13481, Frontend shard 1/2). The same commit's code passed on main's run (13474).

src/pages/sheet/SheetHot.test.jsx:634, "a row's own fields, edited › saves a quantity and a removal with the sheet, on its version". The test took 3,750 ms. The saved body had update: [{… qty: 40}] and no remove: ["inv-rope"].

That suggests the test asserts before the removal has joined the pending save, a race between the quantity edit's debounce and the remove, which a slow runner exposes. It could also be a real ordering bug in how the sheet batches a removal made just after an edit. That would matter, since a removal silently not saved would be data a player thinks they changed. Worth checking which before calling it a flake. Nothing in 4.6.0 touched the sheet.

Seen on 17 Oct 2026 in the v4.6.0-rc2 release PR's run (13481, Frontend shard 1/2). The same commit's code passed on main's run (13474). `src/pages/sheet/SheetHot.test.jsx:634`, "a row's own fields, edited › saves a quantity and a removal with the sheet, on its version". The test took 3,750 ms. The saved body had `update: [{… qty: 40}]` and **no** `remove: ["inv-rope"]`. That suggests the test asserts before the removal has joined the pending save, a race between the quantity edit's debounce and the remove, which a slow runner exposes. It could also be a real ordering bug in how the sheet batches a removal made just after an edit. That would matter, since a removal silently not saved would be data a player thinks they changed. Worth checking which before calling it a flake. Nothing in 4.6.0 touched the sheet.
Author
Collaborator

Picked up for v4.7.0 (2026-10-30), on branch fix/1221-sheet-removal-save. First: decide whether the test asserts too early, or whether a removal made just after an edit is really lost. The second would be data loss for a player, fixed in the component with a deterministic regression test.

Picked up for v4.7.0 (2026-10-30), on branch `fix/1221-sheet-removal-save`. First: decide whether the test asserts too early, or whether a removal made just after an edit is really lost. The second would be data loss for a player, fixed in the component with a deterministic regression test.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/Quest-Board#1221
No description provided.