Repository navigation
Codex Desktop crashes on resume: sends unsupported thread_tools feature to bundled CLI #29361
Description
Summary
Codex Desktop became effectively unusable on macOS because opening/resuming a thread repeatedly crashes the app-server/worker with SIGKILL. The most consistent root error is that the Desktop app sends a feature override named thread_tools, but the bundled CLI does not recognize that feature key.
Environment
- Codex Desktop:
26.616.51431(CFBundleVersion4212) - Bundled CLI:
codex-cli 0.142.0-alpha.6 - Platform: macOS, Apple Silicon MacBook Air
- Active workflow: Codex Desktop app, local project, Figma MCP integration enabled
- Date observed: 2026-06-21
Main crash
The app repeatedly shows the generic crash screen:
An error has occurred
Codex crashed with the following error:
(code=null, signal=SIGKILL).
The relevant app log line:
target=codex_features
app_server.request ... otel.name="thread/resume" client_name="Codex Desktop" client_version="26.616.51431":
load_with_cli_overrides: unknown feature key in config: thread_tools
Local checks
thread_toolswas not present in~/.codex/config.toml.- Resetting
~/Library/Application Support/Codexdid not fix the issue. codex features listdid not includethread_tools.- The crash reproduced immediately after restarting the app and resuming the thread.
Likely cause
The Desktop app appears to send an unsupported feature override during thread/resume.
In /Applications/Codex.app/Contents/Resources/app.asar, I found a feature mapping containing:
Lu=`thread_tools`
...
{gateName:`2395575782`,featureKey:Lu}
I also found base instruction construction with:
threadToolsEnabled:!0
This looks like a Desktop build / bundled CLI mismatch: Desktop enables or forwards thread_tools, while the bundled CLI feature parser rejects it.
Workaround tested locally
I backed up the app bundle file:
/Applications/Codex.app/Contents/Resources/app.asar.bak-20260621-thread-tools
Then patched the current app.asar byte-for-byte:
- replaced
`thread_tools`with a valid same-length feature key`tool_suggest` - replaced
threadToolsEnabled:!0withthreadToolsEnabled:!1
After that patch, the thread_tools crash stopped.
Secondary issue after reset
After resetting app state, a different crash appeared from the Figma MCP auth path:
worker quit with fatal: Transport channel closed,
when AuthRequired(AuthRequiredError {
www_authenticate_header: "Bearer resource_metadata=\"https://mcp.figma.com/.well-known/oauth-protected-resource\", scope=\"mcp:connect\", authorization_uri=\"https://api.figma.com/.well-known/oauth-authorization-server\""
})
target="rmcp::transport::worker"
That may be a separate auth recovery issue, but the original thread_tools crash made the Desktop app unusable before the Figma auth problem was visible.
Impact
- Existing Codex Desktop thread cannot be used reliably.
- Repeated
SIGKILLcrash screens occur during normal work. - Resetting local app state does not fix the
thread_toolsmismatch. - The only effective workaround I found was patching the app bundle manually, which is not a reasonable user workaround.
Expected behavior
Codex Desktop should not send unknown feature keys to the bundled CLI, or the bundled CLI should tolerate/ignore unknown Desktop feature gates instead of crashing the worker/app-server flow.
Log locations checked
Per Codex troubleshooting docs:
~/Library/Logs/com.openai.codex/YYYY/MM/DD
~/.codex/sessions
~/.codex/archived_sessions
I can provide more log excerpts if needed, after reviewing them for sensitive data.
Activity
github-actions commentedon Jun 21, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
mvisl commentedon Jun 21, 2026
Additional crash observed after creating this issue via the GitHub connector.
The app crashed again with a different error:
This looks like another Desktop/runtime bug: a plugin skill name containing
:(github:github) is being used as a telemetry tag value, but the metrics/tag validator rejects it. The rejection then surfaces as another crash screen instead of being swallowed as non-fatal telemetry failure.This happened in the same Desktop session while using the GitHub plugin to submit the bug report above.
mvisl commentedon Jun 21, 2026
Another crash observed in the same session, this time from the skill loader while processing skill interface icons:
Local inspection found many temporary plugin candidates under
~/.codex/.tmp/plugins/plugins/...withagents/openai.yamlvalues such as:Examples included temporary candidates such as
coderabbit,brighthire,twilio-developer-kit,morningstar,teams, etc. The paths are invalid under the current loader rule, but this should remain a non-fatal warning. Instead, it surfaced as yet another crash screen.Temporary local mitigation: moved
~/.codex/.tmp/pluginsaside to a timestamped backup so the loader stops scanning those temporary candidates.mvisl commentedon Jun 21, 2026
The skill-loader icon-path crash persisted after moving the temporary plugin cache out of the way.
Latest crash screen:
This is still a warning-level loader event (
level":"WARN", message starts withignoring ...) but the Desktop app presents it as a fatal crash. From the user's perspective, the app is unusable: repeated unrelated warning/error paths keep surfacing asSIGKILLcrash screens.At this point the observed sequence in one session is:
thread_toolsfeature mismatch on thread resume.AuthRequiredafter app-state reset.github:github.interface.icon_small/interface.icon_large) surfacing as fatal crash screens.This looks like a broader Codex Desktop/runtime regression where recoverable warnings or integration/config problems are not isolated and instead crash the session.
mvisl commentedon Jun 21, 2026
Another independent crash screen in the same Desktop session:
This appears to be an app-server outgoing message / callback routing issue. Again, the event is logged as
WARN, but the Desktop UI shows it as a fatal crash.This further supports that the current Desktop build is not isolating recoverable app-server/plugin/MCP/telemetry warnings from the main session. The user keeps hitting unrelated
SIGKILLcrash screens during normal use.mvisl commentedon Jun 21, 2026
Latest state from app logs after the UI started rendering mostly
?characters in the crash window.The screenshot itself is no longer readable: the crash dialog renders repeated red
?/ punctuation instead of a usable error message. Pulling from the latest macOS app log shows the actual new failure cause.Log file:
Relevant lines:
Additional UI bug observed in the same log:
So the current failure set now includes:
documents,pdf,presentations,spreadsheets) no longer exist in discovered marketplaces.WARNentries close the app-server withSIGKILLand are broadcast as a fatal crash.?characters instead of a useful message.Open Config.tomlaction is wired toopen-config-toml, but that action is not implemented in Electron.At this point the Desktop app is effectively unusable even after the earlier local
thread_toolsmitigation and Figma MCP re-login.JaredTheHammer commentedon Aug 25, 2026
This behavior also reproduced on Windows with Codex Desktop
26.818.8289.0and bundled app-server0.149.0-alpha.4.3: the shell emittedunknown feature key in config: thread_tools, and the app-server exited with0xFFFFFFFFduring recovery. The localconfig.tomldid not containthread_tools; the key was injected by the packaged desktop shell. It did not recur during the final verified reconnect after local projection repair, but the compatibility defect remains a separate upstream concern.fivepeople-art commentedon Sep 20, 2026
Additional report from macOS: the unsupported
thread_toolssession flag is still visible as a configuration warning in desktop build 26.915.31945 (CFBundleVersion 9922).Environment:
Observed in Settings > Configuration > Agent defaults:
The unrelated top-level
network_accessentry was subsequently removed from the user configuration. The configuration parses successfully and the bundled engine'sfeatures listcommand exits successfully. The desktop warning after reloading has not yet been verified.Checks specific to
thread_tools:defaultFeatureOverrides?.thread_toolsandthreadToolsEnabled.This report confirms a settings warning, not the SIGKILL/crash symptom described in the original issue. The precise activation trigger has not been established, and these observations alone do not prove a crash cause.
Expected: desktop-provided session feature flags should be compatible with the bundled engine, or app-only flags should be filtered before configuration validation, so users are not warned to fix a flag absent from their configuration.
Please check whether this newer-build warning is the same compatibility issue. No private logs, session transcripts, screenshots, or user-specific filesystem paths are attached.
indyhttps commentedon Sep 20, 2026
Additional Windows report, observed on 2026-09-20: the unsupported
thread_toolssession flag still appears as a configuration warning in Codex Desktop.Environment:
26.915.4065.0codex-cli 0.155.0-alpha.9.2Warning reported by the user in Settings:
Read-only local checks:
config.tomlcontains nothread_toolsentry.features listcommand completed successfully and does not listthread_tools.defaultFeatureOverrides?.thread_tools,threadToolsEnabled, and thethread_toolsfeature key.These findings point to a desktop/session-feature compatibility problem rather than a typo the user can remove from their configuration. This report concerns the Settings warning only; it does not establish a crash or a causal link to the crashes in the original issue.
Expected: desktop-supplied session flags should be compatible with the bundled engine, or app-only flags should be filtered before configuration validation. Users should not be prompted to correct settings they did not add.
The user explicitly asked Codex to report this to OpenAI and objected to consuming their token/usage allowance troubleshooting a defect in OpenAI's own application. Please address the underlying compatibility issue and provide a support/reporting route that does not require further usage-consuming diagnostics from affected users.
No private logs, screenshots, account identifiers, local usernames/paths, or conversation transcripts are attached.
sd68515 commentedon Sep 21, 2026
I can confirm this issue on Windows as well.
Environment:
OpenAI.Codex 26.915.4065.0codex-cli 0.155.0-alpha.9.2The Desktop app repeatedly shows:
This is not caused by my local configuration:
~/.codex/config.tomldoes not containthread_toolsorfeatures.thread_tools.CODEX_HOMEis not set.The bundled CLI's
codex features listoutput does not includethread_tools. However, the Desktop package'sresources/app.asarstill contains code that readsdefaultFeatureOverrides.thread_toolsand forwards it through the feature-overrides path.This therefore appears to be the same Desktop-to-bundled-CLI feature-key mismatch described in the original report, and it is still present in a newer Windows Desktop build.
HaokaiDing commentedon Sep 21, 2026
Root-cause detail for the macOS
features.thread_toolsconfiguration warning in desktop 26.915.31945 (build 9922), bundled engine 0.155.0-alpha.9.2.Read-only inspection of the installed desktop bundle found a client-side configuration serialization gap:
thread_tools.writing_blocks,apps, andplugins.thread_tools, so serialization emitsfeatures.thread_tools=true. The bundled engine does not recognize that key.The corresponding emitted helpers in this build are
Lw/Ew(main-process shared bundle) andpce/KI(renderer shared bundle).Suggested fix: add
thread_toolsto the existing desktop-only exclusion set in the source shared by these serializers. Keep it in the original desktop feature map so task-management tools remain enabled. Turning off the entire desktop feature or adding a no-op engine flag would address a different layer.Validation performed without modifying the installed app:
-c features.thread_tools=trueemitted the exactconfigWarningnotification:session-flags: features.thread_tools is ignored.features.multi_agent=true, and leaves the original desktop feature map unchanged.config/readwith no configuration warning;multi_agentremained true.The installed app has not been patched, and the candidate change has not been validated in a rebuilt desktop app. These observations explain the settings warning only; they do not establish a cause for the SIGKILL/crash symptoms in the original report.