[App][Linux] Quick-access hotkey triggers SIGTRAP; explicit null binding prevents shortcut crashes
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Summary
On Linux, invoking the Codex desktop quick-access window shortcut caused the entire desktop process to terminate with SIGTRAP. The configured command was hotkeyWindow, bound to Ctrl+Command+Shift+Z. The user initially observed crashes while editing a prompt and pressing Ctrl+Z, then reported Ctrl+Shift+Z and explicitly confirmed that pressing the configured shortcut immediately closed the app.
Explicitly disabling this command with "key": null, followed by restarting the app, resolved the tested shortcut crashes according to the user. This is a verified local workaround, not a demonstrated fix to the underlying native implementation.
Version and environment
- Affected package:
chatgpt 26.908.40834, installed desktop executable/usr/lib/chatgpt/ChatGPT. - Linux, Ubuntu 24.04, x86_64. The package version is from the installed package and Apport report, not the About dialog.
- Subscription: not included in this investigation.
- Crash timestamps below are September 14, 2026, Asia/Tbilisi (UTC+04:00).
Steps to reproduce on the affected installation
-
In
~/.codex/keybindings.json, configure:[ { "command": "hotkeyWindow", "key": "Ctrl+Command+Shift+Z" }, { "command": "realtimeVoice", "key": "Ctrl+." } ] -
Fully quit and reopen the desktop app.
-
Focus the prompt editor and type a disposable draft.
-
Invoke the configured quick-access shortcut. The user also reported Ctrl+Shift+Z as a trigger; Ctrl+Z was the initial observation and has not been independently isolated as the same trigger.
-
Observe that the whole desktop app closes immediately.
These steps describe the user's repeated manual reproduction on one installation, not an automated or cross-machine reproduction. Exact platform handling of the Command modifier has not been established in this investigation.
Expected behavior
The quick-access window should open or toggle without terminating the app. If an accelerator is unsupported or invalid on Linux, it should be rejected safely. Prompt Undo/Redo should not terminate the desktop process.
Observed crash evidence
The kernel recorded a native int3 trap in the main desktop process. The launcher independently recorded termination by SIGTRAP (signal 5).
| Crash time | Evidence | Executable file offset |
|---|---|---|
| 00:17:32 | Kernel ChatGPT ... trap int3; Apport Signal: 5 |
0xac35211 |
| 01:58:05 | Kernel ChatGPT ... trap int3; launcher SIGTRAP |
0xac35211 |
The 01:58 crash reproduced after restoring the original app.asar from the exact installed .deb. Its MD5 matched the package manifest: 4e1f18bff1a0ac0242454f0e29ad7549. Thus, the previously modified archive was not necessary for that reproduction.
The launcher logged exit at 01:58:28, after Apport finished collecting the report; the actual kernel crash time was 01:58:05. Both crashes above reached the same executable file offset within this package version. The stack trace contains only unresolved ??? frames, so it does not identify a function or establish the underlying cause.
Raw core dumps and full application logs are not attached because they can contain private application data. Sanitized crash evidence is included above.
Verified workaround and why deleting the entry did not work
Use an explicit null binding:
[
{ "command": "hotkeyWindow", "key": null },
{ "command": "realtimeVoice", "key": "Ctrl+." }
]
Then fully quit and reopen the app. Preserve any other existing bindings.
Deleting the hotkeyWindow entry was insufficient: the shortcut value reappeared and the app crashed again. Inspection of the installed keymap implementation showed that its schema accepts a nullable key, and clearing all accelerators for a command writes {command: commandId, key: null}. We applied that explicit disable entry, read the file back to verify it, and the user confirmed: “it works now.”
The workaround disables the quick-access shortcut; it does not repair or validate the quick-access window itself. No claim is made that every earlier intermittent crash had this cause.
Scope and maintainer follow-up
The strongest isolated lead is the quick-access/global-shortcut path associated with hotkeyWindow. A modifier parsing issue, shortcut collision, or window lifecycle failure remains a hypothesis, not a confirmed root cause. Investigating those paths in the desktop implementation and symbolizing the native trap would be useful.
The public repository does not contain the affected desktop hotkeyWindow implementation, so this report supplies reproduction and workaround evidence rather than a speculative code patch. Earlier MCP startup failures, preload warnings, and listener warnings were not established as causal.
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.
Research direction
Start by checking whether the affected desktop implementation is present in this repository; the issue says the public repository does not contain hotkeyWindow. Review the Linux reproduction steps, SIGTRAP evidence at offset 0xac35211, and the explicit null-binding workaround. Done means identifying the shortcut failure and preventing the app from terminating, or safely rejecting the unsupported accelerator.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop, operating-systems
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100