Skip to content

bug: Enabling voice mode for a Codex agent fails with “thread already has an active writer” #3105

Description

@flennic

What's broken

Enabling voice mode for a Codex-backed agent fails with:

Failed to resume Codex thread: thread already has an active writer

Voice mode is not enabled for the agent. I expected voice mode to become active and the existing Codex conversation to remain usable.

The failure persists after running paseo daemon restart and reproduces with newly created Codex agents. Retrying after the agent becomes idle produces the same error.

Possibly related: #2234 describes voice-mode session reload problems with Claude, but I could not find an existing issue for this Codex error.

Steps to reproduce

  1. Start Paseo with voice mode and local speech providers enabled.
  2. Run paseo daemon restart.
  3. Create a new Codex agent.
  4. Wait until its initial turn has completed and the agent is idle.
  5. Enable voice mode for that agent.
  6. Observe that enabling voice mode fails.
  7. Retry enabling voice mode while the agent remains idle.

The daemon consistently reports that the Codex thread already has an active writer. I reproduced this with more than one newly created Codex agent.

Where did this happen

Web (browser)

Paseo version

0.3.1

OS version

Fedora Linux 43 (Workstation Edition), Kernel 6.17.1-300.fc43.x86_64, happens also on iOS with the app

Agent provider

Not relevant

Provider configuration

Codex CLI 0.147.0

Paseo launches:

codex app-server --enable goals

Model: gpt-5.6-luna
Mode: Auto Review
Reasoning effort: medium

Logs

{"level":30,"time":1786307981233,"pid":1126287,"hostname":"fedora","daemonVersion":"0.3.1","module":"session","enabled":true,"requestedAgentId":"4b8bc404-d465-4065-9d0a-
  67e24b5e492e","requestId":"c745a92e-4eb2-4375-96af-919b55c477fe","msg":"set_voice_mode started"}
  {"level":30,"time":1786307981233,"pid":1126287,"hostname":"fedora","daemonVersion":"0.3.1","module":"session","agentId":"4b8bc404-d465-4065-9d0a-
  67e24b5e492e","elapsedMs":0,"msg":"set_voice_mode enabling voice for agent"}
  {"level":30,"time":1786307981233,"pid":1126287,"hostname":"fedora","daemonVersion":"0.3.1","module":"session","agentId":"4b8bc404-d465-4065-9d0a-
  67e24b5e492e","msg":"enableVoiceModeForAgent.reloadAgentSession.start"}
  {"level":40,"time":1786307981539,"pid":1126287,"hostname":"fedora","daemonVersion":"0.3.1","module":"agent","provider":"codex","agentId":"4b8bc404-d465-4065-9d0a-
  67e24b5e492e","error":{},"threadId":"019fe840-95ae-7821-974b-7d4d90eaf836","msg":"Failed to resume persisted Codex thread"}
  {"level":50,"time":1786307981561,"pid":1126287,"hostname":"fedora","daemonVersion":"0.3.1","module":"session","err":{"type":"Error","message":"Failed to resume Codex thread
  019fe840-95ae-7821-974b-7d4d90eaf836: thread 019fe840-95ae-7821-974b-7d4d90eaf836 already has an active writer: thread 019fe840-95ae-7821-974b-7d4d90eaf836 already has an
  active writer","stack":"Error: Failed to resume Codex thread 019fe840-95ae-7821-974b-7d4d90eaf836: thread 019fe840-95ae-7821-974b-7d4d90eaf836 already has an active writer\n
  at CodexAppServerAgentSession.ensureThreadLoaded (.../codex-app-server-agent.js:2806:19)\n    at async CodexAppServerAgentSession.establishConnection (.../codex-app-server-
  agent.js:2457:17)\n    at async CodexAppServerAgentSession.connect (.../codex-app-server-agent.js:2426:13)\n    at async CodexAppServerAgentClient.resumeSession (.../codex-
  app-server-agent.js:5231:9)\n    at async AgentManager.reloadAgentSessionInternal (.../agent-manager.js:721:15)\ncaused by: Error: thread 019fe840-95ae-7821-974b-7d4d90eaf836
  already has an active writer\n    at CodexAppServerClient.handleLine (.../app-server-transport.js:238:36)"},"enabled":true,"requestedAgentId":"4b8bc404-d465-4065-9d0a-
  67e24b5e492e","elapsedMs":328,"msg":"set_voice_mode failed"}

Screenshots or video

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugReproducible unintended behaviorp2Valid useful work with limited impact or a workaroundplatform:iosiOS specificplatform:webWeb / browser specifictriagedReviewed by maintainer triage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions