0.143.0 regression: built-in exec_command rejected as “unsupported call”; rollback to 0.142.5 fixes it
What version of Codex CLI is running?
codex-cli 0.143.0
What subscription do you have?
Plus
Which model were you using?
gpt-5.5
What platform is your computer?
Darwin 25.5.0 arm64 arm
What terminal emulator and version are you using (if applicable)?
Terminal.app
Codex doctor report
{
"schemaVersion": 1,
"generatedAt": "1783577927s since unix epoch",
"overallStatus": "ok",
"codexVersion": "0.143.0",
"checks": {
"app_server.status": {
"id": "app_server.status",
"category": "app-server",
"status": "ok",
"summary": "background server is not running",
"details": {
"control socket": "/Users/rymalia/.codex/app-server-control/app-server-control.sock",
"daemon state dir": "/Users/rymalia/.codex/app-server-daemon",
"mode": "ephemeral",
"pid file": "/Users/rymalia/.codex/app-server-daemon/app-server.pid (missing)",
"settings": "/Users/rymalia/.codex/app-server-daemon/settings.json (missing)",
"status": "not running",
"update-loop pid file": "/Users/rymalia/.codex/app-server-daemon/app-server-updater.pid (missing)"
},
"remediation": null,
"durationMs": 0
},
"auth.credentials": {
"id": "auth.credentials",
"category": "auth",
"status": "ok",
"summary": "auth is configured",
"details": {
"auth file": "/Users/rymalia/.codex/auth.json",
"auth storage mode": "File",
"stored API key": "false",
"stored ChatGPT tokens": "true",
"stored agent identity": "false",
"stored auth mode": "chatgpt"
},
"remediation": null,
"durationMs": 0
},
"config.load": {
"id": "config.load",
"category": "config",
"status": "ok",
"summary": "config loaded",
"details": {
"CODEX_HOME": "/Users/rymalia/.codex",
"config.toml": "/Users/rymalia/.codex/config.toml",
"config.toml parse": "ok",
"cwd": "/Users/rymalia/projects/minutes",
"enabled feature flags": "shell_tool, unified_exec, shell_snapshot, terminal_resize_reflow, sqlite, hooks, enable_request_compression, multi_agent, apps, tool_search_always_defer_mcp_tools, tool_suggest, plugins, in_app_browser, browser_use, browser_use_full_cdp_access, browser_use_external, computer_use, remote_plugin, plugin_sharing, image_generation, resize_all_images, skill_mcp_dependency_install, mentions_v2, steer, guardian_approval, goals, collaboration_modes, tool_call_mcp_elicitation, personality, fast_mode, tui_app_server, remote_compaction_v2, workspace_dependencies",
"feature flag overrides": "none",
"feature flags enabled": "33",
"log dir": "/Users/rymalia/.codex/log",
"mcp servers": "2",
"model": "gpt-5.5",
"model provider": "openai",
"sqlite home": "/Users/rymalia/.codex"
},
"remediation": null,
"durationMs": 0
},
"git.environment": {
"id": "git.environment",
"category": "git",
"status": "ok",
"summary": "git version 2.50.1 (Apple Git-155)",
"details": {
".git entry": "directory",
"PATH git #1": "/usr/bin/git",
"PATH git entries": "1",
"git branch": "feat/screen-context-agent-delivery",
"git build options": "git version 2.50.1 (Apple Git-155); cpu: arm64; no commit associated with this build; sizeof-long: 8; sizeof-size_t: 8; shell-path: /bin/sh; feature: fsmonitor--daemon; libcurl: 8.7.1; zlib: 1.2.12; SHA-1: SHA1_DC; SHA-256: SHA256_BLK",
"git exec path": "/Applications/Xcode.app/Contents/Developer/usr/libexec/git-core",
"git version": "git version 2.50.1 (Apple Git-155)",
"repo detected": "true",
"repo root": "/Users/rymalia/projects/minutes",
"selected git": "/usr/bin/git"
},
"remediation": null,
"durationMs": 26
},
"installation": {
"id": "installation",
"category": "install",
"status": "ok",
"summary": "installation looks consistent",
"details": {
"PATH codex #1": "/Users/rymalia/.nvm/versions/node/v24.18.0/bin/codex",
"PATH codex #2": "/Users/rymalia/.local/bin/codex",
"PATH codex entries": "2",
"current executable": "/Users/rymalia/.nvm/versions/node/v24.18.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin/bin/codex",
"install context": "npm (package /Users/rymalia/.nvm/versions/node/v24.18.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin, bin /Users/rymalia/.nvm/versions/node/v24.18.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin/bin, resources /Users/rymalia/.nvm/versions/node/v24.18.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin/codex-resources, path /Users/rymalia/.nvm/versions/node/v24.18.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin/codex-path)",
"managed by bun": "false",
"managed by npm": "true",
"managed package root": "/Users/rymalia/.nvm/versions/node/v24.18.0/lib/node_modules/@openai/codex",
"npm update target": "/Users/rymalia/.nvm/versions/node/v24.18.0/lib/node_modules/@openai/codex"
},
"remediation": null,
"durationMs": 142
},
"mcp.config": {
"id": "mcp.config",
"category": "mcp",
"status": "ok",
"summary": "MCP configuration is locally consistent",
"details": {
"configured servers": "2",
"disabled servers": "0",
"stdio servers": "2"
},
"remediation": null,
"durationMs": 0
},
"network.env": {
"id": "network.env",
"category": "network",
"status": "ok",
"summary": "network-related environment looks readable",
"details": {
"proxy env vars": "none"
},
"remediation": null,
"durationMs": 0
},
"network.provider_reachability": {
"id": "network.provider_reachability",
"category": "reachability",
"status": "ok",
"summary": "active provider endpoints are reachable over HTTP",
"details": {
"ChatGPT base URL": "https://chatgpt.com/backend-api/ reachable (HTTP 403)",
"reachability mode": "ChatGPT auth"
},
"remediation": null,
"durationMs": 222
},
"network.websocket_reachability": {
"id": "network.websocket_reachability",
"category": "websocket",
"status": "ok",
"summary": "Responses WebSocket handshake succeeded",
"details": {
"DNS": "2 IPv4, 0 IPv6, first IPv4",
"auth mode": "chatgpt",
"connect timeout": "15000 ms",
"endpoint": "wss://chatgpt.com/backend-api/<redacted>",
"handshake result": "HTTP 101 Switching Protocols",
"model provider": "openai",
"models etag present": "true",
"provider name": "OpenAI",
"proxy env vars": "none",
"reasoning header": "false",
"server model present": "false",
"supports websockets": "true",
"wire API": "responses"
},
"remediation": null,
"durationMs": 750
},
"runtime.provenance": {
"id": "runtime.provenance",
"category": "runtime",
"status": "ok",
"summary": "running npm on macos-aarch64",
"details": {
"commit": "unknown",
"current executable": "/Users/rymalia/.nvm/versions/node/v24.18.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin/bin/codex",
"install method": "npm (package /Users/rymalia/.nvm/versions/node/v24.18.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin, bin /Users/rymalia/.nvm/versions/node/v24.18.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin/bin, resources /Users/rymalia/.nvm/versions/node/v24.18.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin/codex-resources, path /Users/rymalia/.nvm/versions/node/v24.18.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin/codex-path)",
"platform": "macos-aarch64",
"version": "0.143.0"
},
"remediation": null,
"durationMs": 0
},
"runtime.search": {
"id": "runtime.search",
"category": "search",
"status": "ok",
"summary": "search is OK (bundled)",
"details": {
"search command": "/Users/rymalia/.nvm/versions/node/v24.18.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin/codex-path/rg",
"search command readiness": "file exists",
"search provider": "bundled"
},
"remediation": null,
"durationMs": 0
},
"sandbox.helpers": {
"id": "sandbox.helpers",
"category": "sandbox",
"status": "ok",
"summary": "sandbox configuration is readable",
"details": {
"approval policy": "OnRequest",
"codex-linux-sandbox helper": "none",
"execve wrapper helper": "/Users/rymalia/.codex/tmp/arg0/codex-arg0MUnWaS/codex-execve-wrapper",
"filesystem sandbox": "restricted",
"network sandbox": "restricted"
},
"remediation": null,
"durationMs": 0
},
"state.paths": {
"id": "state.paths",
"category": "state",
"status": "ok",
"summary": "state paths and databases are inspectable",
"details": {
"CODEX_HOME": "/Users/rymalia/.codex (dir)",
"active rollout files": "117 files, 88919091 total bytes, 759992 average bytes",
"archived rollout files": "0 files, 0 total bytes, 0 average bytes",
"goals DB": "/Users/rymalia/.codex/goals_1.sqlite (file)",
"goals DB integrity": "ok",
"log DB": "/Users/rymalia/.codex/logs_2.sqlite (file)",
"log DB integrity": "ok",
"log dir": "/Users/rymalia/.codex/log (missing)",
"memories DB": "/Users/rymalia/.codex/memories_1.sqlite (file)",
"memories DB integrity": "ok",
"sqlite home": "/Users/rymalia/.codex (dir)",
"state DB": "/Users/rymalia/.codex/state_5.sqlite (file)",
"state DB integrity": "ok"
},
"remediation": null,
"durationMs": 341
},
"state.rollout_db_parity": {
"id": "state.rollout_db_parity",
"category": "threads",
"status": "ok",
"summary": "rollout files and state DB thread inventory agree",
"details": {
"default model provider": "openai",
"rollout DB active files": "117",
"rollout DB active rows": "117",
"rollout DB archive mismatches": "0",
"rollout DB archived files": "0",
"rollout DB archived rows": "0",
"rollout DB duplicate DB paths": "0",
"rollout DB duplicate rollout thread ids": "0",
"rollout DB malformed file names": "0",
"rollout DB missing active rows": "0",
"rollout DB missing archived rows": "0",
"rollout DB model providers": "openai=117",
"rollout DB rows": "117",
"rollout DB scan cap reached": "false",
"rollout DB scan errors": "0",
"rollout DB sources": "cli=59, exec=26, subagent:thread_spawn=25, vscode=7",
"rollout DB stale rows": "0"
},
"remediation": null,
"durationMs": 554
},
"system.environment": {
"id": "system.environment",
"category": "system",
"status": "ok",
"summary": "OS language en-US",
"details": {
"EDITOR": "not set",
"LANG": "en_US.UTF-8",
"VISUAL": "not set",
"os": "Mac OS 26.5.0 [64-bit]",
"os language": "en-US",
"os type": "Mac OS",
"os version": "26.5.0"
},
"remediation": null,
"durationMs": 4
},
"terminal.env": {
"id": "terminal.env",
"category": "terminal",
"status": "ok",
"summary": "terminal metadata was detected",
"details": {
"COLORTERM": "truecolor",
"TERM_PROGRAM": "Apple_Terminal",
"color output": "disabled (stdout is not a terminal)",
"effective locale": "en_US.UTF-8",
"stderr is terminal": "true",
"stdin is terminal": "true",
"stdout is terminal": "false",
"terminal": "Apple Terminal",
"terminal size": "166x47",
"terminal version": "470.2"
},
"remediation": null,
"durationMs": 0
},
"terminal.title": {
"id": "terminal.title",
"category": "title",
"status": "ok",
"summary": "terminal title default",
"details": {
"terminal title activity": "true",
"terminal title items": "activity, project-name",
"terminal title project source": "git repo root",
"terminal title project value": "minutes",
"terminal title source": "default"
},
"remediation": null,
"durationMs": 0
},
"updates.status": {
"id": "updates.status",
"category": "updates",
"status": "ok",
"summary": "update configuration is locally consistent",
"details": {
"cached latest version": "0.143.0",
"check for update on startup": "true",
"dismissed version": "0.143.0",
"last checked at": "2026-07-08T22:08:01.025993Z",
"latest version": "0.143.0",
"latest version status": "current version is not older",
"npm update target": "/Users/rymalia/.nvm/versions/node/v24.18.0/lib/node_modules/@openai/codex",
"update action": "npm install -g @openai/codex",
"version cache": "/Users/rymalia/.codex/version.json"
},
"remediation": null,
"durationMs": 313
}
}
}
What issue are you seeing?
Summary
After upgrading the npm-installed Codex CLI to 0.143.0, every invocation of
the built-in exec_command tool failed immediately with:
unsupported call: exec_command
The requested shell process never started. This made Codex unable to read
workspace files, inspect the repository, or run tests.
Only rolling back to 0.142.5 restored normal command execution.
Exiting Codex 0.143.0 without changing versions, and starting a second
fresh session on 0.143.0 resulted in the same errors.
Environment
- Codex failing version:
codex-cli 0.143.0 - Codex working version:
codex-cli 0.142.5 - Installation: global npm package under NVM
- Package:
@openai/codex - Codex path:
/Users/rymalia/.nvm/versions/node/v24.18.0/bin/codex
- Node:
v24.18.0 - npm:
11.18.0 - OS: macOS 26.5, build 25F71
- Architecture: Apple Silicon / arm64
- Hardware: M3 MacBook Air
- Workspace: local Git repository
- Shell: zsh
Actual behavior
The first session started after upgrading to 0.143.0 could not execute any
built-in shell command.
Commands attempted by the agent included:
pwd
and:
sed -n '1,260p' docs/replay-fb571a02-thinking.md
The agent also retried using:
- Absolute and workspace-relative paths
- Files in different subdirectories
- A minimal
pwdcommand - Separate and combined reads
Every attempt failed identically:
unsupported call: exec_command
The failure occurred before the shell started. It was therefore unrelated to:
- The requested file path
- File existence
- Workspace permissions
- Shell syntax
- The specific command being run
Other capabilities, including web access, continued working.
Expected behavior
exec_command should dispatch the built-in shell tool, start the configured
shell, and return stdout/stderr.
At minimum, pwd should execute successfully.
Workaround and A/B result
The installation was confirmed as:
@openai/codex@0.143.0
I rolled it back with:
npm install -g @openai/codex@0.142.5
After confirming:
codex --version
codex-cli 0.142.5
I exited Codex and started a new session. The same class of command then
executed successfully:
pwd && sed -n '1,40p' _temp/screen-context-usage-model-2026-07-08.md
It returned the workspace path and file contents normally.
Impact
This completely blocked local coding-agent work. Codex could converse and use
web tools, but could not:
- Read repository files
- Search source code
- Run builds or tests
- Inspect the working tree
- Perform normal implementation work
The only alternatives were pasting files into the conversation or rolling
back the CLI.
Possible failure layer
The exact message suggests that the tool call reached Codex’s tool router but
the built-in exec_command name was not registered or resolved.
This appears different from failures where exec_command is recognized but
the unified execution process cannot be spawned. Here, no process-creation
error appeared—the call itself was reported as unsupported.
This is only an inference from the error message, not a confirmed root cause.
Regression confidence and limitation
The version correlation is strong:
0.143.0: repeated deterministic failure for everyexec_command0.142.5: command execution restored immediately
This appears distinct from issue #20770, where exec_command was recognized but failed to spawn a process. The exact unsupported call message is associated with tool-registry lookup failures in other Codex reports, although those involve different tools and configurations (example).
Fresh reproduction
After reinstalling 0.143.0, a fresh session reproduced the failure on the
first attempt. The emitted error was:
unsupported call: exec_commandexec_command
Both pwd and sed -n '1,3p' AGENTS.md failed before process creation, with
no exit code or output.
The duplicated tool name (exec_commandexec_command) suggests that 0.143.0
may be incorrectly concatenating a tool namespace/name or serializing the
built-in function identifier twice.
This removes the restart confound. 0.143.0 is now reproducibly broken across two fresh sessions.
Restart control
I exited Codex without changing versions, started a second fresh session on0.143.0, and repeated the same read-only test.
Both commands again failed before execution:
pwd
unsupported call: exec_command
sed -n '1,3p' AGENTS.md
unsupported call: exec_command
No process exit code or command output was returned.
Therefore, restarting Codex while remaining on 0.143.0 does not resolve the
problem.
The first fresh session reported exec_commandexec_command; the second
reported exec_command. Although the rendered rejected name varied, both
sessions consistently failed at tool dispatch before shell process creation.
At this point the evidence is strong:
0.143.0, fresh session 1: fails.0.143.0, fresh session 2: fails.- Restart alone: no effect.
0.142.5: succeeds.- Failure occurs before command execution.
Requested investigation
Please check whether 0.143.0 introduced a regression in:
- Built-in tool registration
- Tool-name serialization
- Namespace or tool-router lookup
- Client/server protocol compatibility for
exec_command - Session initialization after an npm upgrade
What steps can reproduce the bug?
Uploaded thread: 019f457a-cec3-7901-9410-6a77782719d9
What is the expected behavior?
_No response_
Additional information
_No response_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗