Problem
The Desktop E2E job intermittently timed out while waiting for Electron's first window:
TimeoutError: electronApplication.firstWindow: Timeout 30000ms exceeded while waiting for event "window"
at e2e/fixtures.ts:88
Observed in PR #1002:
Expected behavior
launchE2eApp() should either obtain the first BrowserWindow reliably or report enough Electron process diagnostics to identify why no window appeared.
Investigation
- Capture Electron stdout, stderr, exit status, and process state when
firstWindow() times out. - Distinguish an application startup failure from a missed or delayed Playwright window event.
- Track additional occurrences before introducing retries.
- If a retry is required, keep it bounded and preserve diagnostics from the failed attempt rather than hiding startup failures.
- Verify teardown still closes Electron and removes the temporary user-data directory after launch failures.
Acceptance criteria
- The failure mode has actionable diagnostics.
- The root cause is identified or a deterministic startup/readiness synchronization replaces the timing-sensitive wait.
- Any retry is justified by reproduced transient behavior and does not mask real startup crashes.
- A stress run under Linux/Xvfb exercises repeated cold launches without leaking Electron processes or temporary directories.
Problem
The Desktop E2E job intermittently timed out while waiting for Electron's first window:
Observed in PR #1002:
Expected behavior
launchE2eApp()should either obtain the first BrowserWindow reliably or report enough Electron process diagnostics to identify why no window appeared.Investigation
firstWindow()times out.Acceptance criteria