Skip to content

Treat a cancelled transition as ended in the browser specs - #54

Merged
codeministry merged 2 commits into
mainfrom
fix/chat-drawer-abort-flake
Nov 8, 2026
Merged

codeministry merged 2 commits into
mainfrom
fix/chat-drawer-abort-flake

Conversation

@codeministry

Copy link
Copy Markdown
Owner

What

transitions() in chat-drawer.browser.spec.ts and shortlist.browser.spec.ts waits for every finite animation's finished. A transition cancelled on the way — its element removed, or its value switched back — rejects that promise, and Chromium rejects it with AbortError: The user aborted a request.

That is the error the chat drawer (ISC-432) > the keyboard shortcut (ISC-461) > … at 390px failed with in CI on #53, and it is not new: on main the spec failed 2 of 30 local runs and once more in a further 15, all with that message. A cancelled animation has ended, so the rejection is now taken as the end rather than as a failure.

Test code only; nothing in the app changes.

Evidence

  • A probe in the browser tier (el.animate(…), then cancel()) rejects finished with exactly AbortError: The user aborted a request.
  • Before: about 1 in 15 runs of chat-drawer.browser.spec.ts failed, on main and on Build the frontend on Node 26 and update dependencies #53 alike.
  • After: 20 runs of both specs, 0 failures. bun run check:static green.

Not in this PR

A second, rarer flake in the same file: a change of screen (ISC-444) > stays open with ?chat unchanged across every hop at 1440 failed once in 68 runs with TimeoutError: locator.click: Timeout 14106ms exceeded. — a different cause, not chased here.

transitions() in chat-drawer.browser.spec.ts and shortlist.browser.spec.ts
awaited every finite animation's `finished`. A transition cancelled on the
way (its element removed, or its value switched back) rejects that promise,
and Chromium rejects it with "AbortError: The user aborted a request." --
the error the ISC-461 keyboard-shortcut test failed with about one run in
fifteen, on main as well. A cancelled animation has ended, so the rejection
is now taken as the end.
@codeministry codeministry self-assigned this Nov 8, 2026
@codeministry
codeministry merged commit c6881dd into main Nov 8, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant