Codex Desktop cannot start thread: permissionProfile/list unknown variant and PermissionProfileSelectionParams type mismatch

Resolved 💬 3 comments Opened Jun 20, 2026 by VectorPeak Closed Jun 20, 2026

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:

  1. The Desktop frontend calls permissionProfile/list, but the local backend/app-server rejects it as an unknown request variant.
  2. thread/start fails because the permission profile selection is sent as a string such as ":danger-full-access", while the backend expects an internally tagged enum named PermissionProfileSelectionParams.

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

  1. Open Codex Desktop on Windows.
  2. Start a new task or conversation.
  3. Type any message and click Send.
  4. 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 explicit default_permissions or sandbox_mode is configured.
  • The issue still appears when creating or prewarming a conversation.
  • Searched existing issues for PermissionProfileSelectionParams and permissionProfile/list. I found related Desktop permission/sandbox issues, but not this exact startup failure or schema mismatch.

Related Issues Checked

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/start receives a string such as ":danger-full-access" or ":workspace", but the backend expects PermissionProfileSelectionParams as 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.

View original on GitHub ↗

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