codex-cli 0.142.3 still crashes with Trace/BPT trap: 5 (SIGTRAP) on tool calls (web_search + shell) on Intel macOS — regression of #29000
Summary
On Intel (x86_64) macOS, codex-cli 0.142.3 still crashes with a native Trace/BPT trap: 5 (SIGTRAP) the moment it invokes a tool — both web_search and local shell/file reads abort with no output and the conversation reports "Conversation interrupted."
This appears to be the same crash as #29000 (closed as completed on 2026-06-23) and #28090 (open). #29000 was marked fixed, but it is still reproducing on 0.142.0–0.142.3 per recent comments there. Filing fresh so the regression on the latest version is visible.
What version of Codex CLI is running?
0.142.3
Which model were you using?
gpt-5.5
What platform is your computer?
macOS 13.7.5 (build 22H527), x86_64 (Intel)
Steps to reproduce
- Start
codexin a repository (aSessionStarthook was active; working directory path contains a space:.../Wordpress for Apps). - Ask Codex to perform a web search.
- Codex first attempts a local file read / shell command; the command aborts and the terminal prints:
````
Trace/BPT trap: 5
- Resume the session and ask Codex to invoke web search directly (no shell command).
- The search produces no output; the conversation reports:
````
Conversation interrupted - tell the model what to do differently.
Something went wrong? Hit /feedback to report the issue.
Expected behavior
Tool calls (web_search, shell, file read) return results or a recoverable error without terminating the process.
Actual behavior
Any tool invocation aborts without output; at least one invocation produced a native Trace/BPT trap: 5 (SIGTRAP). web_search is effectively unusable in the session.
Additional observations
- Both local command execution and web search are affected, which points at the shared tool runner / JIT path rather than web_search alone.
- Consistent with #29000 / #28090 root-cause discussion: V8 JIT
SetPermissionsfailing under macOS Hardened Runtime (invalid/ignored entitlements blob). - No usage-limit reset was consumed.
- Date observed: 2026-06-26.
Environment
- Codex version:
codex-cli 0.142.3 - macOS: 13.7.5 (22H527)
- Architecture: x86_64 (Intel)
- Shell: bash
- Terminal: Terminal.app (macOS default)
Related
- #29000 (closed as completed, but still reproduces on 0.142.x)
- #28090 (open)
7 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Still reproducible with Codex CLI 0.142.4 and the VS Code extension.
Environment:
The app-server exits with SIGTRAP while initializing V8:
v8::base::OS::SetPermissions
v8::internal::CodeRange::InitReservation
v8::internal::Heap::SetUp
v8::internal::Isolate::Init
v8::Isolate::New
The issue still reproduces after:
features.plugins = falsechatgpt.cliExecutableto the standalone 0.142.4 binarycodesign --verify --strictalso reports an invalid signature for both the standalone and VS Code bundled Intel binaries.I am attaching a sanitized macOS crash report and VS Code Codex log.
codex-crash-2026-06-29-sanitized.zip
Codex.sanitized.log
I’m seeing the same issue on
@openai/codex@0.142.4installed via Volta/npm on Intel macOS.Environment:
0.142.40.137.014.8.4 (23J319)x86_64zshin iTerm2v24.14.0/Users/karlgolka/.volta/tools/image/packages/@openai/codex/...Failure mode:
0.142.4crashes when a turn attempts a tool/custom tool call.0.137.0restores normal operation.Crash reports observed:
~/Library/Logs/DiagnosticReports/codex-2026-06-29-125709.ips~/Library/Logs/DiagnosticReports/codex-2026-06-29-130301.000.ips~/Library/Logs/DiagnosticReports/codex-2026-06-29-130807.000.ips~/Library/Logs/DiagnosticReports/codex-2026-06-29-130939.ips~/Library/Logs/DiagnosticReports/codex-2026-06-29-131217.ipsCrash signature:
```
Exception: EXC_BREAKPOINT / SIGTRAP
Termination: Trace/BPT trap: 5
codex v8::base::OS::SetPermissions
codex v8::internal::CodeRange::InitReservation
codex v8::internal::Heap::SetUp
codex v8::internal::Isolate::Init
codex v8::internal::Isolate::InitWithSnapshot
codex v8::internal::Snapshot::Initialize
codex v8::Isolate::Initialize
codex v8::Isolate::New
codex v8::isolate::Isolate::new
```
Related secondary symptom:
``
text
``codex_core::util: Custom tool call output is missing for call id: ...
That appears to be fallout after the native process dies mid-tool-call: the session has a recorded tool call but no corresponding output.
This looks consistent with the V8/JIT/hardened-runtime SIGTRAP already discussed here. Adding this data point because it reproduces on
0.142.4and on macOS14.8.4, not only macOS 15/26.FYI - in meantime, 👍 reverting to 137 solved the issue for now ...
Can we please get this fixed?
I’m seeing what appears to be the same issue on my Intel Mac server.
Environment:
Behavior:
When Codex tries to invoke tools, especially shell commands/file reads, the session crashes/interrupts instead of returning tool output. I have seen the native macOS error:
Trace/BPT trap: 5
After that, Codex reports the conversation as interrupted / failed rather than showing the result of the tool call.
This is happening on an older Intel Mac server, not Apple Silicon. It sounds consistent with the Intel macOS SIGTRAP/tool-runner issue described here and in the related issues. The main trigger appears to be tool execution.
This looks like a shared native tool-runner support boundary, not only a web_search or shell-specific crash.
The runtime should separate:
tool call selected
≠
the shared native tool runner is executable in the current platform/runtime context
In the report, multiple tool paths fail through the same native failure mode:
That points to a common tool-runner / runtime execution layer rather than the individual tool implementation.
Minimal invariant:
ToolDispatchSupported(tool, env)
requires:
Failure shape:
model requests a tool
+
Codex enters shared tool-runner path
+
native runtime traps before tool output
+
conversation becomes interrupted
=>
the tool transition has no supported terminal outcome
A useful local classifier:
def classify_tool_runner_support(env):
required = {
"shared_runner_loadable",
"native_runtime_permissions_valid",
"platform_entitlements_valid",
"tool_process_start_supported",
"terminal_outcome_supported",
}
supported = set(env.get("supported", []))
missing = required - supported
if missing:
return {
"decision": "block_tool_dispatch",
"reason": "shared_tool_runner_not_supported",
"missing_support": sorted(missing),
"platform": env.get("platform"),
"arch": env.get("arch"),
"codex_version": env.get("codex_version"),
}
return {
"decision": "dispatch_tool_call",
"missing_support": [],
}
Regression cases:
=> local shared_tool_runner_not_supported diagnostic
=> classify as shared runner failure, not two independent tool failures
=> terminal outcome = native_runner_trap, not generic Conversation interrupted
=> tool calls return output or structured tool error
=> startup preflight detects unsupported native runner before the first tool call
The key boundary is:
a tool call is dispatchable only if the common execution layer for tools is supported on that platform.
If the shared runner cannot start because of native runtime / entitlement / JIT permission failure, Codex should fail locally with a named diagnostic such as shared_tool_runner_not_supported or native_runner_trap instead of collapsing the session into a generic conversation interruption.
Any update on this issue? I'm still in a 0.137.0 holding pattern until this is resolved and I can safely upgrade. Appreciate any info, 🙏 big 👍 Thanks!