Windows Desktop: task messaging can use an unregistered host alias and report failure despite inconsistent delivery
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
Trace the task-list/delegation host ID, target-thread host resolution, AppServerManager registration, and send path for local tasks. Reproduce the alias mismatch and compare delivery with the returned result. Done means local tasks use one routable host identity and send outcomes are consistent and retry-safe.
Written by the indexing model from the issue text.
Description
What version of the Codex App are you using (From the "About Codex" dialog)?
Codex App 26.721.4979.0
Bundled app-server 0.146.0-alpha.3.1
What platform is your computer?
Windows 11 Home x64, version 10.0.26200, build 26200
What issue are you seeing?
Task-to-task messaging can be given a host ID that has no registered AppServerManager, even though the target is a local Codex task.
For the same target thread:
- the task list/delegation metadata reports a host shaped like
slingshot:<redacted> - reading the target thread resolves its host as
local - desktop logs show the app-server connection successfully started and connected for
hostId=local - sending with the host ID returned by the list/delegation metadata returns:
No AppServerManager registered for hostId: slingshot:<redacted>
The delivery outcome is also inconsistent with the response:
- for one send, the API returned the error above, but a later target-thread readback showed the packet had been delivered
- for another send with the same error, target-thread readback showed no delivery
This leaves the caller unable to determine whether retrying is safe. A retry can duplicate a packet that was delivered after an error response, while not retrying can lose a packet that was not delivered.
What steps can reproduce the bug?
- Start Codex Desktop with local project tasks.
- List the project tasks and select a target whose returned host ID is
slingshot:<redacted>. - Read the same target thread and observe that its resolved host is
local. - Send one task message using the host ID returned by the task list/delegation metadata.
- Observe
No AppServerManager registered for hostId: slingshot:<redacted>. - Read the target thread once.
- The sent packet may be present despite the failure response, or absent.
What is the expected behavior?
- A local task should expose one canonical, routable host ID across list, delegation, read, and send APIs.
- Alternatively, the send path should normalize an alias to the registered local manager.
- A failed send response must not later produce an unreported side effect.
- A successful side effect should return a success/delivery receipt that is safe for callers to act on.
- If routing registration is still refreshing, the operation should wait for that transition or return a retry-safe status with a stable operation ID.
Additional information
The behavior may be a timing/race issue in host registration, task-list refresh, or send-result finalization: the error and later delivery can occur close together. This is a hypothesis, not confirmed root cause.
The local desktop logs show:
Starting app-server connection hostId=local transport=stdio- transport start success
- app-server connected for
local
No registered manager for the returned slingshot:<redacted> alias was observed.
This seems related to #18556 and #28490 because of the same No AppServerManager registered family, but appears distinct:
- the affected targets are local project tasks rather than stale SSH targets
- two APIs disagree on the host identity for the same thread
- a send can take effect after returning an error, making the failure response non-transactional
Sanitized targeted logs can be provided if needed.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.5k
- Avg merge
- 1m
- Merged PRs (30d)
- 1k
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from openai/codex
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
bug CLI windows-os
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
macOS sandbox blocks hw.optional.arm64 sysctl, causing Flutter to misdetect Apple Silicon as x64 Openbug CLI sandbox
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug CLI TUI
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
CLI config enhancement skills
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
A-linter
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
oxc-project/oxc#26863 ·