Flaky e2e: empty-edit-delete.spec.ts:74 — empty-edit submit intermittently never opens the delete confirm dialog
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 75/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- playwright, typescript
- Domain
- testing
Research direction
Start with tests/e2e/empty-edit-delete.spec.ts at line 74 and inspect the clear-to-Enter sequence for the empty-edit case. Run the spec or the smoke shard command from the issue, then verify that the delete confirmation appears reliably and that the cancellation still keeps the message.
Written by the indexing model from the issue text.
Description
Desktop Smoke E2E (2) failed on attempt 1 of the CI run for #6542 at 0d7b21b356c842ad167d54a874bc9f378fe3c706, failing all three Playwright attempts, then passed on a re-run of the same job at the same SHA with no code change.
- Failed job (attempt 1): https://github.com/block/buzz/actions/runs/32782601230/job/97607837104
- Passing re-run (attempt 2): https://github.com/block/buzz/actions/runs/32782601230/job/97614178241
Failure
tests/e2e/empty-edit-delete.spec.ts:74 — "cancelling the empty-edit delete keeps the message" — timed out waiting for the confirm dialog:
const dialog = page.getByRole("alertdialog");
await expect(dialog).toBeVisible({ timeout: 10_000 });
What the artifacts show
The empty-edit submit never reached the confirm dialog on that runner — the dialog did not appear and get dismissed:
- The CI error-context DOM snapshot has edit mode still live and never exited: "Editing message" and "Cancel edit" both present, composer empty. No
alertdialognode anywhere in the snapshot. - The trace confirms the gesture ran in the intended order: edit-message click →
edit-targetvisible → select-all → Backspace → empty assertion passes → Enter → wait foralertdialog.
So the state at failure is "editor cleared and Enter pressed, but the submit did not produce the dialog," not "dialog appeared and was lost."
Suspected mechanism
Async timing in the Tiptap clear→Enter sequence: the Enter keypress is dispatched before the editor's cleared state has propagated to whatever decides an empty submit routes to the delete confirmation, so the submit is treated as a no-op instead of an empty edit. Unconfirmed — it is consistent with the DOM evidence but I did not instrument the editor to prove it.
Not reproducible at this SHA
Checked at 0d7b21b356c842ad167d54a874bc9f378fe3c706 (git rev-parse HEAD confirmed in the same shell):
- The spec alone: passes 3/3.
- The exact CI shard,
--project=smoke --shard=2/4 --workers=1(336 tests):empty-edit-deletepassed. Two unrelated specs flaked in that run —huddle-transcription.spec.ts:759andinbox-live-update.spec.ts:281. - The CI job re-run alone, same SHA, no code change: pass (16m52s).
Scoped negative: I did not find a reproduction locally in the same shard, or on a CI re-run at that SHA. I am not claiming this is a previously-known flake — I did not search the history of this spec for earlier occurrences.
Not a #6542 regression
The failure appeared on a run of #6542 (agent activity cover drawer), which had just moved edit-adjacent code, so it was worth ruling out:
- The spec never opens a cover drawer or the agent surface.
- The rebase did not modify the empty-edit path. The relocated pending-main-edit effect still gates on
channelIsCovered(desktop/src/features/channels/ui/ChannelPane.tsx:551) withonEditunchanged. - Escape is not involved in this flow, so the cover drawer's Escape handling cannot reach it.
Ask
Evidence only, no fix here. If someone wants this hardened, it is a change to that spec's clear→Enter sequence (wait for the editor's empty state to settle before pressing Enter rather than asserting emptiness and immediately submitting) and should not ride along in an unrelated PR.
- Dominant language
- Rust
- Stars
- 33.7k
- Forks
- 4.4k
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 239
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from block/buzz
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
workflow_sink's mention parser never masks code regions — @name inside a code span wakes the agent Open
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 Half a day Newbie friendliness 88/100
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
gitbutlerapp/gitbutler#15998 · 1 comment ·
-
bug triage:deciding
Difficulty 1/5 Under an hour Newbie friendliness 88/100
open-telemetry/otel-arrow#4132 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
bitcoindevkit/bdk-ffi#1125 ·