Skip to content

macOS dot: local thread read rejects placement format v1 and delegated task loses native thread tools #50077

Open

Description

@geo-sparks

Summary

A reproducible local-task coordination failure in ChatGPT desktop/Codex: a dot cannot read an explicitly tagged local thread even though the user can open and interact with that same thread. The cloud task reader returns unsupported placement format version 1. A delegated local task also no longer exposes its previously usable local thread list/read/send tools.

Related reports: #49729 and #49997 describe the placement error; #49862 describes missing native thread controls on Windows. This report supplies a macOS reproduction with both observed symptoms. Their causal relationship is not established; please consolidate if appropriate.

Environment

  • ChatGPT desktop app, bundle com.openai.codex: version 26.928.21956, build 12404
  • macOS 26.5.2, build 25F84, Apple Silicon
  • Separately installed CLI: 0.154.0 (not asserted to be the app's bundled runtime)
  • Computer reported connected, attached, and authorized for dot tasks
  • Observed October 1, 2026; repeated exact-ID reads at approximately 19:04 and 19:06 UTC

Reproduction

  1. Connect the Mac to a dot and keep the desktop app running.
  2. Open a local project thread and interact with it directly.
  3. Tag that thread in the dot conversation, providing its exact local thread reference.
  4. Ask the dot to read or investigate the identified thread.
  5. Retry after interacting with the same local thread again.

Actual result

Both dot-side reads fail before returning thread contents:

AppServerBackendRequestError: Client specified an invalid argument:
post-cutover thread ID [REDACTED] has unsupported placement format version 1
error_code: UNKNOWN

The user's direct interaction with the local thread still works. A read of an earlier dot-created coordination task succeeds, so this is not a blanket failure of every task-read operation.

In that delegated local task, the native local thread read/list/send methods had worked earlier in the same day. Later checks found them absent from the exposed tool catalog, and the native read method was undefined. Filesystem access still worked. No fallback message reached the target local thread, and it was not restarted or modified.

Read-only checks

  • User configuration parses successfully.
  • The relevant bundled app-tools integration is enabled and the project is trusted.
  • No project-specific configuration override was found.
  • No configuration change has been established as the cause; configuration was left unchanged.
  • Reconnecting through an explicit thread tag and retrying after a fresh user interaction did not clear the placement error.

Expected result

A dot should be able to access an explicitly identified local task through the supported route on an authorized connected computer, or return an actionable supported compatibility/permission requirement. The local execution task should expose supported task controls consistently when that capability is enabled.

Please investigate the local-thread placement/routing compatibility and native tool exposure. A server/client compatibility issue is a hypothesis, not a confirmed diagnosis. No service-wide outage is claimed.

Privacy

This public report omits account email, actual thread/project identifiers, local filesystem paths, raw configuration, logs, screenshots, secrets, and conversation contents. Exact identifiers can be supplied privately through a supported diagnostic channel if needed.

Activity

  1. added
    bugSomething isn't working
    appIssues related to the Codex desktop app
    app-serverIssues involving app server protocol or interfaces
    on Oct 1, 2026
  2. added
    dotsIssues involving setting up ChatGPT dots or managing their ongoing work.
    on Oct 2, 2026
  3. wilksys commented on Oct 2, 2026

    @wilksys

    I’m seeing this across all my existing project chats on macOS: dot cannot access them, although I can use them directly. My computer has been connected and authorized for dot tasks. My other Advisor/voice coordinator chat can access the same chats without this problem.

    Specific tested examples return “unsupported placement format version 2” and “unsupported placement format version 3” on direct reads by dot. A newly created test chat also failed with a placement error. Direct messaging attempts previously returned CloudThreadNotFoundError.

    The latest app update and restart on October 2 did not resolve it. Is there a supported recovery step, or does this require a product-side fix?

  4. jinho950920-ctrl commented on Oct 2, 2026

    @jinho950920-ctrl

    Removed by author.

  5. app351515-cyber commented on Oct 2, 2026

    @app351515-cyber

    Adding another Windows reproduction, observed on October 2, 2026.

    A normal project conversation that I created in the Codex desktop app works when I use it directly. When I ask dot to read that same existing conversation, the read fails with:

    AppServerBackendRequestError: Client specified an invalid argument: post-cutover thread ID [REDACTED] has unsupported placement format version 1

    This prevents me from using dot to review and supervise the existing project conversation. Ordinary project conversations and unrelated tasks still work.

    There is also a separate follow-up problem with dot-created desktop tasks: sending a message directly from the desktop app fails with:

    invalid turn/start params: AbsolutePathBuf deserialized without a base path

    That second error occurs in both an existing dot-created task and a freshly created diagnostic task. Sending instructions to those same tasks through dot can still execute successfully. I have not established whether the two errors share a cause.

    The exact desktop app version/build has not been verified for this reproduction. Thread IDs, project names, and local paths are omitted.

    Is there a verified workaround for accessing existing project conversations through dot? Please let me know which diagnostics would help investigate these failures, and whether the AbsolutePathBuf symptom should be tracked separately.

  6. notpaulb commented on Oct 2, 2026

    @notpaulb

    Adding a follow-up from macOS on Codex 26.930.21537 (build 12776). My computer is connected and authorized for dot tasks. Restarting the app did not restore access.

    • Reads of existing local tasks through cloud_threads.read fail with unsupported placement format versions 2 and 3, while delegated task execution still works.
    • Native local-thread controls worked earlier but are absent from the later inspected tool registry. The 449-entry registry has no exact matches for mcp__codex_app__read_thread or mcp__codex_app__send_message_to_thread. The check used the fully qualified names, avoiding the initial shorthand-name false negative discussed in Improve discovery and wrong-route diagnostics for dot continuation of local Codex chats #49482. This establishes absence in the inspected context, not a root cause.
    • Separately, relaying explicit, bounded approval to a delegated task was rejected based on an earlier scope, and the requested continuation was not admitted. I have not established whether this approval-relay problem shares a cause with the routing or tool-exposure failures.

    These failures significantly limit my ability to use dot to coordinate existing project tasks and carry approved work through to completion. I’ve also submitted feedback privately.

    Is this a known issue on this version, and is there a supported recovery procedure? Please advise whether the approval-relay symptom should be tracked separately.

  7. hnic1130-jpg commented on Oct 2, 2026

    @hnic1130-jpg

    Adding a Windows reproduction with verified installed versions and a control read, observed on October 2, 2026 (including a read at approximately 21:01 UTC).

    Environment:

    • Windows version string: 10.0.26200 x64
    • Installed Codex desktop package: 26.930.2377.0
    • Bundled Codex core: 0.159.0-alpha.12.1
    • Separately installed npm @openai/codex CLI: 0.153.4 (not the bundled runtime)

    Reproduction on the affected installation:

    1. Keep the Windows computer connected and authorized for dot tasks.
    2. Provide the exact identifier of an existing local project thread and ask the dot to read it.
    3. The supported cloud_threads.read operation repeatedly fails before returning thread contents.
    4. As a control, reads of two separate coordination tasks succeed.

    Sanitized error:

    AppServerBackendRequestError: Client specified an invalid argument: post-cutover thread ID [REDACTED] has unsupported placement format version 3
    error_code: UNKNOWN
    

    Additional read-only observations:

    • A local session locator exists for the target. Opening that target in the desktop UI was not tested, so this report does not claim the target was successfully read locally.
    • The public app-server ThreadReadParams schemas generated offline from the two installed CLI builds are identical and expose no placement-version parameter. This is a schema observation, not a test of an alternate live read route.
    • The inspected delegated local task lacks native thread read/send tools. A local outbox alone does not establish delivery to the existing thread.
    • No thread/database/credential mutation, migration, or CLI update was performed during these checks.

    Expected: an authorized existing local thread should be readable through a supported route, or the read should return an actionable access/compatibility explanation.

    This overlaps with the placement-version reports here and #50157. A routing compatibility issue is a hypothesis; the root cause and any relationship to missing native tools remain unconfirmed.

    Project names, account identifiers, thread IDs, filesystem paths, conversation contents, and raw logs are omitted. No files are attached.

  8. Frequency7032 commented on Oct 5, 2026

    @Frequency7032

    Adding another macOS desktop observation, reproduced on 5 October 2026. Reads of existing Codex chats through dot fail with:

    AppServerBackendRequestError: Client specified an invalid argument: post-cutover thread ID [redacted] has unsupported placement format version 1

    Other affected chats report placement format versions 2 and 3. Reading a newer cloud task succeeds. A separately linked remote conversation returns AppServerBackendRequestError: thread not found: [redacted].

    This prevents dot from checking the plans and current state of existing coordinating/implementation chats. Please clarify which existing tasks this read path supports and provide an actionable recovery or compatibility explanation rather than an opaque placement error.

    The app version has not yet been collected. We have not established a common cause across the placement errors and the separate not-found result. Account details, task identifiers and conversation contents are omitted.

  9. app351515-cyber commented on Oct 5, 2026

    @app351515-cyber

    Update to my earlier Windows report: #50077 (comment)

    I retested the original affected PC on October 6, 2026, at approximately 08:19–08:22 JST (October 5, 23:19–23:22 UTC).

    dot successfully created a new work chat, and both the initial message and one follow-up received acknowledgments. An older dot-created work chat also acknowledged a new message.

    However, reading an existing ordinary project chat through dot still fails with:

    AppServerBackendRequestError: Client specified an invalid argument: post-cutover thread ID [REDACTED] has unsupported placement format version 1
    error_code: UNKNOWN

    The successful messages were sent through dot. Direct messaging from the desktop app was not retested, so recovery of the separate “AbsolutePathBuf deserialized without a base path” error has not been established.

    This is a limited partial recovery; the cause is unknown. The existing-project read problem remains unresolved. Is there a supported diagnostic or recovery step for that remaining failure?

  10. Kohei25-gif commented on Oct 6, 2026

    @Kohei25-gif

    Adding a macOS reproduction from October 6, 2026 (all times UTC).

    • At approximately 04:39, dot's cloud_threads.read still failed to read an existing local thread with “unsupported placement format version 1.”
    • At approximately 04:40, the Mac was verified as connected, attached, and authorized for dot tasks.
    • The same exact thread identifier had been successfully read through the official native read_thread operation with hostId set to local at approximately 03:18 that day. This provides a successful local control read for the affected thread.
    • In dot's tool catalog inspected at approximately 04:48, native local-thread read/list/send tools were absent; cloud-thread controls were available. This observation applies to that inspected context and does not establish a root cause.

    The current desktop app version/build has not been verified for this reproduction. A direct-read repair has not been established, and the relationship between the placement error and tool availability remains unconfirmed.

    Could maintainers provide a supported route for dot to read an existing local thread directly, or advise on a compatibility fix? Relaying content through another task would not meet the goal of direct access to the existing thread.

    Actual thread identifiers, account details, device names, filesystem paths, conversation contents, and raw logs are omitted.

  11. omarpinarecords commented on Oct 7, 2026

    @omarpinarecords

    Additional October 7 macOS corroboration: dot-side reading of an explicitly identified existing Local Codex task failed with unsupported placement format version 2 despite connected/authorized computer status. This does not establish that Local execution failed or independently reproduce every native-tool disappearance described here.

    I opened #51722 to document the related support-matrix/documentation gap, with official sources and links to these existing reports. Documentation describes continuation of existing Local Codex tasks, subject to permissions/connectivity; a new intermediary task is not equivalent to restoring direct access to the original task. The resolved new-Work-thread-creation incident does not by itself verify this existing-task path.

    A sanitized web feedback submission was attempted at approximately 15:23 UTC on October 7. The form closed without exposing a feedback ID or retained success confirmation, so no feedback ID is claimed here. Private task IDs, local paths, logs and project information are omitted.

  12. JobAnyol commented on Oct 8, 2026

    @JobAnyol

    I can reproduce the same direct-read error on macOS, observed on October 8, 2026.

    My Mac was connected and authorized for dot tasks. When my dot tried to read a specifically identified existing local Codex conversation, it returned:

    AppServerBackendRequestError: Client specified an invalid argument: post-cutover thread ID [REDACTED] has unsupported placement format version 1

    For comparison, a separate task running on the same Mac successfully listed the local conversations and read all five turns of that exact conversation through the native local-thread API. The conversation itself was therefore readable through that local route.

    The native local-thread list/read/send functions were not available in the parent dot's inspected tool context. This is an observation from this test, not a confirmed explanation for the error.

    My goal is to let dot read an existing local conversation directly, without creating an intermediary task each time. The intermediary worked for retrieving the content, but did not resolve the direct-access problem.

    The exact desktop app and macOS versions were not collected during this test. No settings changes or database modifications were made as part of the test. Private conversation contents, thread IDs, account details, and filesystem paths are omitted.

    Is there a supported recovery step for direct access, or any additional sanitized diagnostic information that would help investigate this?

  13. akonyer commented on Oct 11, 2026

    @akonyer

    Adding a Windows + NixOS WSL3 reproduction: my dot agent is having trouble with session management/access, while the target Codex session itself runs normally.

    Environment, checked October 11, 2026:

    • Codex Desktop: 26.1007.2314.0.
    • Agent environment: native Linux in NixOS WSL2.
    • Desktop's bundled Linux CLI: 0.162.0-alpha.17.2.
    • Separately running Windows managed app-server daemon: 0.162.1. This version difference is diagnostic context, not an established cause.

    Observed behavior:

    • When the dot attempts to read the existing session directly, it reports:
      post-cutover thread ID [REDACTED] has unsupported placement format version 1
      
    • The session continues working normally.
    • An existing WSL task can read and message that same session through Desktop's local task tools. This is the workaround currently in use.
    • Native Linux command execution with normal sandbox permissions succeeds.

    Additional read-only diagnostic results:

    • A separate task-tool connection on the Windows host could list the target session and return its metadata.
    • Its read response reported status.type = "notLoaded" and an empty turns array. This did not establish successful access to the actual conversation history.
    • A search of the inspected local session/log files and Windows app-server log database found no matching placement-error entry. We therefore do not have a local backend stack trace for the dot's failing request; the error above is the dot-reported result, not a newly captured local log entry.

    This appears consistent with the local-versus-dot access distinction in this issue. The underlying cause, any relationship to the runtime versions, and any connection to WSL configuration remain unconfirmed.

    No personal information, project details, filesystem paths, session IDs, account identifiers, or raw conversation contents are included.

  14. BartoszOGS commented on Oct 17, 2026

    @BartoszOGS

    Dot rejects an original local Codex chat while native read/send/reply succeeds

    Additional user-authorized reproduction, prepared with Codex assistance. Observed October 16, 2026, America/Chicago (October 17 UTC).

    Problem

    On an Apple Silicon Mac running macOS 27.0.1, the user asked Dot to read the title and latest assistant reply of an explicitly identified existing local Codex chat. Dot reported the correct computer connected and authorized, but cloud_threads.read returned no chat content:

    AppServerBackendRequestError: Client specified an invalid argument:
    post-cutover thread ID [REDACTED] has unsupported placement format version 1
    

    The affected running desktop version is 26.1007.71326, build 20398. Build 20586 is staged for that account but has not been activated. A different account's build-20586 transport test does not establish a same-account reader retest on that version.

    Controls

    • The original chat's title and actual history were returned through the supported native read_thread tool on host local.
    • A user-authorized native send_message_to_thread call to that same original chat succeeded. wait_threads returned its completed acknowledgement. No replacement chat or competing CLI app-server was used.
    • Local session creator-account metadata matches the signed-in account metadata. No account IDs, credential values or conversation contents are included here.
    • The user relayed Dot's exact-name catalog check: Dot reports mcp__codex_app__list_threads and mcp__codex_app__read_thread absent and cloud-thread list/read/project/environment controls available. No raw catalog or callable-probe receipt was available to the local investigator. Native availability in the local diagnostic caller does not establish availability in Dot, nor prove that those exact native names are the intended parent Dot dispatch route.

    Separate transport symptom

    All four isolated account apps on this Mac now exhibit repeated executor read-error disconnects after approximately five seconds. In a fresh complete four-minute comparison, the affected original-chat account recorded 37 disconnects with a median connected spell of 5.102 seconds. The user also supplied an Offline computer card after the earlier connected/authorized result. Older stable transport observations must not be taken as current stability. Native controls remain functional; the relationship between these transport failures and the placement rejection is unproven. No broad credential, registration or session-ID reset was performed.

    An earlier bounded trace captured the underlying socket error: WebSocket protocol error: Connection reset without closing handshake. It establishes abnormal closure, not the terminating party. An independent live socket observation later confirmed a socket appearing and disappearing with the approximately five-second executor connect/read-error events while the executor process retained its original start.

    Additional controls: the updated isolated pilot runs the newest production build offered to that installation (20586). Public unauthenticated WebSocket echo controls survived 35 seconds both idle and active (11/11 echoes). Host proxy/PAC and the macOS application firewall are disabled; no attributable network-denial rule was found in the inspected policy data. A prior opaque IPv4-only test on the actual pilot executor still reproduced resets. These controls do not rule out every endpoint-specific network, client or service cause.

    Requested engineering diagnosis

    Please identify the supported direct route for Dot to access this original local chat, including any client/version, account, placement or capability gate. If this rejection needs service-side correction, please provide a private diagnostic channel to correlate a fresh bounded attempt, identify the rejecting service/deployment and whether local-host dispatch occurred, and supply a correction preserving the original task identity/history.

    Acceptance requires Dot retrieving actual content from this same original chat. A new helper task, a visible connection badge, or a native local success alone does not establish direct-reader recovery.

    References

    This draft omits emails, computer names, exact task/project/environment/account IDs, local paths, raw logs, credentials, screenshots and conversation content. Exact private identifiers have not been supplied publicly.

    Additional controlled transport observations, October 17 UTC:

    • A DNS-validated IPv6 route and a separate current IPv4 route each reproduced the short-lived executor connections. The respective 70-second samples had two and three established read-error closures, with median lifetimes of 5.05 and 4.95 seconds; neither sample logged failed WebSocket handshakes.
    • Exact executor process/start-time and loopback source-port observations matched five opaque TCP tunnels. In every matched case, the relay observed an upstream-leg EOF 5–10 milliseconds before the app logged its read error. There were no relay upstream-connect failures or blocked destinations during these two samples.
    • This identifies the first observed termination leg only. It does not identify the ultimate server/intermediary, explain an encrypted TLS alert, exclude a client-triggered protocol rejection, or establish any causal relationship to the placement-format failure. No TLS payloads, request headers or authentication values were inspected.
    • The pilot was restored through its unchanged named launcher with its own bundled runtime and no proxy environment remaining. A subsequent full 60-second ordinary-connection sample still showed five established read-error closures, median 5.14 seconds. The original existing chat remained readable through the supported native local operation; direct parent Dot read acceptance has not passed.

    Please advise which private correlation channel or supported client diagnostics can provide the service-side close reason and reader-routing diagnostics without resetting identities or altering existing chats.

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 appapp-serverIssues involving app server protocol or interfacesbugSomething isn't workingdotsIssues involving setting up ChatGPT dots or managing their ongoing work.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions