Codex App on macOS crashes with SIGABRT after sending a message; earlier missing rollout path

Open 💬 3 comments Opened May 8, 2026 by tyson-trader

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

  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 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_

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗