Codex Desktop cannot start thread: permissionProfile/list unknown variant and PermissionProfileSelectionParams type mismatch
Summary
Codex Desktop cannot create a new task or send a message on Windows. The UI shows an error dialog or stays stuck on "Unable to send message / Loading...".
Local logs show two related failures:
- The Desktop frontend calls
permissionProfile/list, but the local backend/app-server rejects it as an unknown request variant. thread/startfails because the permission profile selection is sent as a string such as":danger-full-access", while the backend expects an internally tagged enum namedPermissionProfileSelectionParams.
This appears to be a Codex Desktop frontend/backend protocol mismatch around permission profile APIs. It prevents conversations from starting at all.
Environment
- App: Codex Desktop
- OS: Windows
- Codex package version:
26.616.4196.0 - Package full name:
OpenAI.Codex_26.616.4196.0_x64__2p2nqsd0c76g0 - Model: gpt-5.5
- Custom model provider: yes
- Install location:
C:\Program Files\WindowsApps\OpenAI.Codex_26.616.4196.0_x64__2p2nqsd0c76g0 - User data path shape:
%LOCALAPPDATA%\Packages\OpenAI.Codex_2p2nqsd0c76g0\LocalCache\Local\Codex - Config file path shape:
%USERPROFILE%\.codex\config.toml
Reproduction Steps
- Open Codex Desktop on Windows.
- Start a new task or conversation.
- Type any message and click Send.
- Observe that the message cannot be sent, or the dialog remains stuck on "Loading...".
Expected Behavior
Codex Desktop should create the thread successfully and send the message.
Actual Behavior
The UI cannot send the message and may show:
Unable to send message
Loading...
Sometimes the toast/dialog also shows:
Invalid request: invalid type: string ":workspace", expected internally tagged enum PermissionProfileSelectionParams
or:
Invalid request: invalid type: string ":danger-full-access", expected internally tagged enum PermissionProfileSelectionParams
Relevant Logs
From local Codex Desktop logs:
%LOCALAPPDATA%\Packages\OpenAI.Codex_2p2nqsd0c76g0\LocalCache\Local\Codex\Logs\2026\06\20\codex-desktop-89fd759a-fe97-44cc-aac2-becaa1acad3e-18808-t0-i1-014209-0.log
The local backend rejects permissionProfile/list:
2026-06-20T01:44:42.048Z error [electron-message-handler] Request failed conversationId=none durationMs=7 error={"code":-32600,"message":"Invalid request: unknown variant `permissionProfile/list`, expected one of `initialize`, `thread/start`, `thread/resume`, ..."} method=permissionProfile/list
Later, thread/start fails with a permission profile parameter type mismatch:
2026-06-20T01:45:36.305Z error [electron-message-handler] Request failed conversationId=none durationMs=7 error={"code":-32600,"message":"Invalid request: invalid type: string \":danger-full-access\", expected internally tagged enum PermissionProfileSelectionParams"} method=thread/start
Prewarming also fails:
2026-06-20T01:45:36.305Z warning [electron-message-handler] Failed to prewarm conversation cwd=%USERPROFILE%\Documents\Codex\2026-06-20\hi-o errorMessage="Invalid request: invalid type: string \":danger-full-access\", expected internally tagged enum PermissionProfileSelectionParams"
Config Notes
My %USERPROFILE%\.codex\config.toml does not explicitly set default_permissions or sandbox_mode.
Relevant non-sensitive config shape:
model_provider = "custom"
model = "gpt-5.5"
model_reasoning_effort = "high"
disable_response_storage = true
[model_providers]
[model_providers.custom]
name = "custom"
wire_api = "responses"
requires_openai_auth = true
base_url = "<custom responses-compatible endpoint>"
[desktop]
appearanceTheme = "system"
localeOverride = "en-US"
No explicit permission profile configuration is present.
Things Tried
- Restarted Codex Desktop.
- Checked
%USERPROFILE%\.codex\config.toml; no explicitdefault_permissionsorsandbox_modeis configured. - The issue still appears when creating or prewarming a conversation.
- Searched existing issues for
PermissionProfileSelectionParamsandpermissionProfile/list. I found related Desktop permission/sandbox issues, but not this exact startup failure or schema mismatch.
Related Issues Checked
- https://github.com/openai/codex/issues/27157 appears related to reviewing/editing granted command-approval rules, not conversation startup failure.
- https://github.com/openai/codex/issues/23973 appears related to
functions.exec_commandpermission behavior, notthread/startfailing withPermissionProfileSelectionParams.
Suspected Cause
The Desktop web frontend appears to be newer than the local app-server/backend, or the app-server is using an older protocol schema.
Evidence:
- The frontend calls
permissionProfile/list. - The backend responds with
unknown variant permissionProfile/list. thread/startreceives a string such as":danger-full-access"or":workspace", but the backend expectsPermissionProfileSelectionParamsas an internally tagged enum.
This suggests a protocol/schema mismatch around permission profile selection.
Impact
This blocks normal use of Codex Desktop because a conversation cannot be created and messages cannot be sent.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗