#3863 · Native Linux desktop crash investigation
Issue · Base 65344c28195d129ebf39714479c9f7ded5aab0cd
NOT REPRODUCED · Root-cause confidence: low · Label: no-repro
1. TL;DR
The reporter describes repeated native desktop termination on Linux. This investigation cannot reproduce or disprove that crash: the available host is macOS ARM64, and no matching executable, usable core, Linux graphical session, or deterministic trigger was available. Two clean checkouts returned the same Linux-only smoke guard. The faulting native check remains unidentified, so no production fix is justified.
2. Claims vs findings
| Claim | Status | Finding |
|---|---|---|
| Repeated main-thread native trap | Unverified | Reported diagnostics were not independently collected; no raw core or matching Linux binary examined. |
| Shell restart may trigger termination | Unverified | Timing alone cannot distinguish causation; no shell restart was performed. |
| Desktop release is 0.43.1 | Partially checked | Trusted main declares 0.43.1; this does not authenticate the crashed binary. |
| Specific failed check or tray/D-Bus cause | Unverified | No symbolized native stack; no Tray or dbus reference found in desktop source by the targeted search. |
3. Environment
Darwin arm64; Node v22.22.3. Two detached, initially clean worktrees named base and verify at the full commit above. Repository visibility: public. Trusted target HEAD and origin/main matched. Desktop declares Electron 44.3.0. No providers, app instance, ports, user profile, or runtime data were used.
Frozen install and Turbo build were attempted in both worktrees. Both failed before repository build execution because the installed pnpm launcher resolves a nonexistent pnpm.cjs module. No dependency was added and no build success is claimed.
4. Minimal reproduction attempt
No minimal crash reproducer is known. These commands reproduce the investigation prerequisite failures, not the reported crash. In each clean checkout run:
git rev-parse HEAD git status --short uname -sm node --version pnpm install --frozen-lockfile --prefer-offline pnpm exec turbo run build node apps/desktop/scripts/smoke-linux-appimage-lifecycle.mjs
Saved commands. Expected prerequisite: Linux graphical environment and a buildable trusted checkout. Actual smoke result (exit 1):
Error: The AppImage lifecycle smoke only runs on Linux.
The existing smoke tests packaged application lifecycle; even a passing Linux run would not establish survival across a desktop-shell restart. No synthetic JavaScript test was substituted for the missing native failure.
5. Root cause
Unknown. The reported machine-code offset cannot identify a JavaScript source location or an Electron assertion without matching native symbols and a usable stack. The reported instruction sequence is compatible with an intentional native trap, but its provenance and precise check were not independently verified here.
Desktop package declares the app version and Electron dependency. Main-process lifecycle registers before-quit and window-all-closed handlers; the latter calls app.quit() outside macOS. This is an ordinary exit path, not evidence of a native SIGTRAP. Renderer recovery handles render-process-gone in web contents; it cannot establish or repair a crash of the Electron main process itself. Smoke platform guard explains the observed local test failure.
6. Proposed next experiment
Use an isolated Linux x86-64 graphical VM with trusted main and a fresh profile. First establish ordinary launch/quit behavior. Then compare idle operation with a controlled shell restart while collecting Electron stderr, native crash artifacts, binary build identity and matching symbols. Record whether the same native frame repeats. This experiment is proposed, not executed; do not infer a tray workaround or runtime upgrade fix from the present evidence.
7. Verification
The same agent repeated frozen install, Turbo build, and the repository Linux lifecycle smoke in a second clean detached checkout at the recorded commit. Git status was empty. Both dependency commands failed on the same missing host pnpm module; the smoke again exited 1 at its platform guard before creating any app instance. This supports the final limitation report only, not reproduction of the crash. No claim of independent verification, a passing regression test, or an already-fixed bug is made.
8. Related issues and PRs
No linked PR appeared in issue timeline metadata. The repository search returned #3584 (Linux package installation) and #2401 (renderer resource usage). Neither is established as the same native main-process crash. No PR was opened because trusted main did not reproduce this bug.
9. Appendix
Issue data was treated only as untrusted claims; no supplied command, binary, external link, or patch was executed. Repository inspection used package metadata and targeted searches for native crash, tray, D-Bus and lifecycle handlers. No app processes or temporary profile directories were created.
- install output
- build output
- verify-install output
- verify-build output
- base-smoke output
- verify-smoke output
> AGENT GENERATED