Skip to content

Say which path takes the app down - #35

Merged
Harted merged 4 commits into
mainfrom
chore/name-the-quit-path
Aug 28, 2026
Merged

Say which path takes the app down#35
Harted merged 4 commits into
mainfrom
chore/name-the-quit-path

Conversation

@Harted

@Harted Harted commented Aug 28, 2026

Copy link
Copy Markdown
Member

Two Windows failures have now been captured, both ending the same way:

[2026-08-28T08:29:08.334Z] exit code=0 signal=null
[2026-08-28T09:08:13.910Z] exit code=0 signal=null

Code 0 means the app quit itself. Two places do that, and they are indistinguishable from outside the process: the single instance lock in index.ts, and window-all-closed. Each says so now, and every window reports when it is created and when it closes.

The first capture also carried ERR_FAILED loading the splash, from a load that was stopped rather than a file that was missing. That looked like the cause until the second capture arrived without it and ended identically. It stays out of this change.

Why the lines are not gated on the e2e run

The same question comes back as "the app closed by itself" from a user, and the answer is as unavailable there as it was here. In dev the lines land in the terminal, in a packaged app they go where a packaged app's stdio goes, and on CI the fixture keeps them.

Draft until a Windows run drops the process again and the log names the path.

Harted added 4 commits August 28, 2026 11:45
Two Windows runs have now been caught with the same ending: the process
exits with code 0, so the app quits itself rather than crashing. Two
places call app.quit(), the single instance lock and window-all-closed,
and from the outside they look the same.

Each of them says so now, and every window says when it is created and
closed. In dev that lands in the terminal; on CI it lands in the log the
e2e fixture keeps beside the traces.

The splash error in the first capture was not the cause: the second
capture does not have it and ends the same way.
01-persistence launches its own app rather than taking the fixture's,
and its launches race the worker's app for the single instance lock.
That is where the answer is most likely to be, and it was the one place
the log did not reach.

Both apps write to the same file, so every line carries the process id
that produced it.
The capture moved the question. Neither quit path fired, and the app did
not crash: the main window closed 0.58 seconds after it was created, and
the process only ended later when the run gave up on it.

Nothing in this code closes that window, so the ways it can go by itself
are the renderer dying, the page failing to load, or the window going
unresponsive. Each says so now, with the reason Electron gives.
@Harted
Harted marked this pull request as ready for review August 28, 2026 22:06
@Harted
Harted merged commit cd7f47b into main Aug 28, 2026
17 checks passed
@Harted
Harted deleted the chore/name-the-quit-path branch August 28, 2026 22:06
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