Codex App on macOS crashes with SIGABRT after sending a message; earlier missing rollout path
What version of the Codex App are you using (From “About Codex” dialog)?
Codex 26.506.21252
What subscription do you have?
chatgpt pro
What platform is your computer?
Darwin 25.1.0 arm64 arm
What issue are you seeing?
````markdown
Summary
Codex App on macOS crashes after sending a message. Initially it failed to resume a local conversation because the expected rollout JSONL file did not exist. After reinstalling Codex App and clearing local Codex state, the app still crashes with SIGABRT / thread caused non-unwinding panic.
Environment
- OS: macOS
- Architecture: [Apple Silicon / Intel]
- Codex App version: [paste version from About Codex]
- Install source: Codex App official download page
- Login method: ChatGPT account
- Workspace tested:
/Users/<user>/Documents/Codex/Users/<user>/codex-empty-test- Time of occurrence: 2026-05-08 around 12:30–12:41 local time
Error shown in Codex App
恢复对话失败
failed to resolve rollout path `/Users/<user>/.codex/sessions/2026/05/08/rollout-2026-05-08T12-30-06-<thread-id>.jsonl`: No such file or directory (os error 2)
(code=null, signal=SIGABRT).
Most recent error: thread caused non-unwinding panic. aborting.
````
Later, after clearing state, the missing rollout path message no longer appeared, but the app still crashed with:
```text
(code=null, signal=SIGABRT).
Most recent error:
0: 0x1087e53f0 - __mh_execute_header
1: 0x107d4151c - __mh_execute_header
2: 0x1087b4958 - __mh_execute_header
...
26: 0x19b699c08 - __pthread_cond_wait
thread caused non-unwinding panic. aborting.
Reproduction steps
- Install or reinstall Codex App on macOS.
- Open Codex App.
- Log in with ChatGPT account.
- Open a local workspace, for example
/Users/<user>/Documents/Codexor/Users/<user>/codex-empty-test. - Start a new conversation.
- Send a simple message such as
hi. - Codex App crashes with
SIGABRT.
What I tried
I backed up and moved the existing Codex local data:
cp -a ~/.codex ~/.codex.backup.$(date +%Y%m%d-%H%M%S)
mv ~/.codex ~/.codex.broken.$(date +%Y%m%d-%H%M%S)
Then I reinstalled Codex App.
I recreated the expected sessions directory and verified it was writable:
mkdir -p ~/.codex/sessions/2026/05/08
chmod -R u+rwX ~/.codex
I also removed GUI/global state files:
pkill -f Codex
pkill -f codex
BACKUP_DIR="$HOME/.codex/state-broken-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BACKUP_DIR"
mv ~/.codex/.codex-global-state.json "$BACKUP_DIR/" 2>/dev/null
mv ~/.codex/.codex-global-state.json.bak "$BACKUP_DIR/" 2>/dev/null
I then tried a deeper local state cleanup:
pkill -f Codex
pkill -f codex
BACKUP_DIR="$HOME/.codex/runtime-broken-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BACKUP_DIR"
mv ~/.codex/.codex-global-state.json* "$BACKUP_DIR/" 2>/dev/null
mv ~/.codex/state_*.sqlite* "$BACKUP_DIR/" 2>/dev/null
mv ~/.codex/logs_*.sqlite* "$BACKUP_DIR/" 2>/dev/null
mv ~/.codex/sqlite "$BACKUP_DIR/sqlite" 2>/dev/null
mv ~/.codex/cache "$BACKUP_DIR/cache" 2>/dev/null
mv ~/.codex/.tmp "$BACKUP_DIR/dot-tmp" 2>/dev/null
mv ~/.codex/tmp "$BACKUP_DIR/tmp" 2>/dev/null
mv ~/.codex/plugins "$BACKUP_DIR/plugins" 2>/dev/null
mv ~/.codex/vendor_imports "$BACKUP_DIR/vendor_imports" 2>/dev/null
mv ~/.codex/computer-use "$BACKUP_DIR/computer-use" 2>/dev/null
mkdir -p ~/.codex/sessions
chmod -R u+rwX ~/.codex
The crash still occurs after these steps.
Observed local state issue
Before clearing state, ~/.codex/.codex-global-state.json contained projectless thread IDs that pointed to threads whose rollout JSONL files did not exist.
Example, redacted:
{
"projectless-thread-ids": [
"<thread-id-1>",
"<thread-id-2>",
"<thread-id-3>"
],
"thread-workspace-root-hints": {
"<thread-id-1>": "/Users/<user>/Documents/Codex",
"<thread-id-2>": "/Users/<user>/Documents/Codex",
"<thread-id-3>": "/Users/<user>/Documents/Codex"
}
}
The expected path under ~/.codex/sessions/2026/05/08/ did not contain the corresponding rollout-*.jsonl file.
Relevant macOS log excerpts
From:
log show --last 10m --predicate 'process CONTAINS[c] "Codex"' --info --debug
I saw repeated Codex / Codex Helper process starts and repeated FSEvents errors:
Codex Helper: (libsystem_info.dylib) Retrieve User by ID
Codex Helper: (TCC) TCCAccessRequest() IPC
codex: (libsystem_info.dylib) Retrieve User by ID
codex: (Network) networkd_settings_read_from_file initialized networkd settings by reading plist directly
codex: (Security) SecKeyCopyAttributes
codex: (Security) SecKeyCopyPublicBytes
codex: (Security) SecTrustEvaluateIfNecessary
Repeated FSEvents errors:
codex: (FSEvents) dev 0 () : purging events up to event id <event-id>
codex: (FSEvents) [com.apple.fsevents:client] FSEventsPurgeEventsForDeviceUpToEventId: f2d_purge_events_for_device_up_to_event_id_rpc() failed: 5
Expected behavior
Codex App should create a new local thread/session successfully, write the required rollout file if needed, and not crash when sending a message.
If a rollout file is missing, Codex App should handle it gracefully rather than aborting.
Actual behavior
Codex App crashes with:
(code=null, signal=SIGABRT)
thread caused non-unwinding panic. aborting.
Initially it also failed with:
failed to resolve rollout path `~/.codex/sessions/.../rollout-<timestamp>-<thread-id>.jsonl`: No such file or directory (os error 2)
Attachments
I can provide a redacted codex-gui-crash.log generated with:
log show --last 10m --predicate 'process CONTAINS[c] "Codex"' --info --debug \
| sed "s#/Users/$USER#/Users/<user>#g" \
| sed "s#$USER#<user>#g" \
> ~/codex-gui-crash-redacted.log
I will not upload auth.json, config.toml, installation_id, or the full ~/.codex directory because they may contain sensitive local or authentication information.
What steps can reproduce the bug?
1.Install or reinstall Codex App on macOS.
2.Open Codex App.
3.Log in with ChatGPT account.
4.Open a local workspace, for example /Users/<user>/Documents/Codex or /Users/<user>/codex-empty-test.
5.Start a new conversation.
6.Send a simple message such as hi.
7.Codex App crashes with SIGABRT.
What is the expected behavior?
_No response_
Additional information
_No response_
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗