Skip to content

Codex Desktop: tool_search advertises read_thread but invocation fails with “No handler registered” until app restart #36013

Open

Description

@alexander-dreyzen

What version of the Codex App are you using?

  • Codex/ChatGPT Desktop: 26.721.81911 (bundle build 5973)
  • Bundled CLI: codex-cli 0.146.0-alpha.3.1

Platform

  • macOS 26.5.2 (25F84)
  • Apple Silicon (arm64)

What issue are you seeing?

In a long-lived Codex Desktop task, immediately after a context-compaction boundary, deferred tool discovery successfully advertised the app-native thread tools, including read_thread. Invoking the discovered tool in the same turn then failed with:

No handler registered for tool: read_thread

This was task-scoped rather than a Remote Control or global app-server outage:

  • A second local Codex task in the same Desktop process successfully called list_threads and read_thread at the same time.
  • That second task exact-read the same Remote Control target that the affected task could not read.
  • Both Remote Control hosts were available.
  • The Desktop log had zero app_server_client_request_queue_rejected, thread_list_unavailable, or thread not loaded events during the incident.
  • A fresh turn in the affected task explicitly ran tool discovery again. Discovery succeeded, but read_thread still failed as unregistered.

After restarting only Codex Desktop—without changing the task, Remote Control connections, target, or prompt—the same affected task repeated discovery and the exact read_thread call successfully within 13 seconds.

Steps to reproduce

The failure is intermittent but was reproduced and discriminated as follows:

  1. Use a long-lived Desktop task that has previously used app-native thread tools and has crossed a context-compaction boundary.
  2. In a fresh turn, use tool discovery to resolve list_threads, read_thread, wait_threads, and send_message_to_thread.
  3. Immediately call the discovered read_thread tool for an available target.
  4. Observe No handler registered for tool: read_thread.
  5. From a different local task in the same Desktop process, call read_thread for the same target; it succeeds.
  6. Restart only Codex Desktop.
  7. Return to the original affected task and repeat discovery plus the same read; it succeeds.

Expected behavior

If tool discovery advertises a tool for the current turn, its handler should be registered and callable in that same turn. Context compaction, task resume, or renderer rehydration should rebuild the per-task dynamic tool-handler registry consistently.

If a handler truly cannot be registered, discovery should fail or omit the tool rather than returning a callable-looking definition that deterministically produces No handler registered.

Impact

This blocks app-native multi-task coordination even though the underlying Remote Control connection and target are healthy. The only confirmed recovery is restarting the controlling Desktop app and starting a fresh invocation. It can also encourage unsafe fallback attempts to alternate transcript or transport surfaces when the correct target remains reachable from other tasks.

Additional information

  • The failing fresh turn began with a recorded context-compaction item.
  • No repository content, user prompts, full task UUIDs, credentials, or complete logs are included here.
  • Exact task/session identifiers and a narrowly sanitized log window can be provided privately through Codex feedback if requested.
  • This report intentionally excludes a separate app-server queue-saturation incident so the handler-registration boundary remains independently actionable.

Likely invariant: dynamic tool discovery and per-task handler registration should be atomic and should be rehydrated together after compaction/resume.

Activity

  1. added
    bugSomething isn't working
    appIssues related to the Codex desktop app
    tool-callsIssues related to tool calling
    sessionIssues involving session (thread) management, resuming, forking, naming, archiving
    on Jul 29, 2026
  2. github-actions commented on Jul 29, 2026

    @github-actions
    Contributor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appbugSomething isn't workingsessionIssues involving session (thread) management, resuming, forking, naming, archivingtool-callsIssues related to tool calling

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions