openai / openai/codex

Codex App sends Z:\AREA_01 to the model as Z:\AREA\_01 while UI displays it correctly

Open
#41,486 13 comments 9 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug windows-os
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

What version of the Codex App are you using?

26.825.4187.0

What subscription do you have?

Not relevant to this client-side text serialization issue.

What platform is your computer?

Microsoft Windows NT 10.0.26200.0 x64

What issue are you seeing?

The Codex desktop app displays a Windows path correctly in the sent user-message bubble, but the text delivered to the model contains an extra backslash before the underscore.

The user sent and the UI displayed:

Z:\AREA_01

The model-visible user message was instead:

Z:\AREA\_01

This is not only a visual Markdown-rendering issue. The message content reaching the model was changed. As a result, the agent initially ran a read-only existence check against the nonexistent path Z:\AREA\_01 and reported it missing. A later directory scan found the actual existing path Z:\AREA_01.

The inserted Markdown escape character becomes a real path separator in a Windows path. This can misdirect file operations; in this case, fail-safe existence checks prevented any deletion or installation at the wrong location.

What steps can reproduce the bug?
  1. Open a Codex desktop task on Windows.
  2. Type a normal sentence containing the unformatted path Z:\AREA_01 (the reproduced prompt also contained Chinese text around the path).
  3. Send the message.
  4. Observe that the sent-message bubble still displays Z:\AREA_01.
  5. Ask the model to repeat the exact path it received, or inspect the model-visible conversation input.
  6. Observe that the model received Z:\AREA\_01.
  7. A filesystem existence check confirms that Z:\AREA_01 exists while Z:\AREA\_01 does not.
What is the expected behavior?

User message text must be delivered to the model byte-for-byte for path-like content. The model should receive Z:\AREA_01, exactly as displayed in the sent-message bubble.

Additional information

This appears related to #32638, but the behavior is materially different. #32638 described underscores being interpreted as emphasis in the composer. Here the UI displays the path correctly after sending, while the serialized model input silently gains a backslash.

Likely boundary: rich-text/Markdown serialization adds an escape before _, and that escape is not removed before constructing the model input.

Current workarounds: wrap paths in inline code or use forward slashes such as Z:/AREA_01.

A screenshot is available showing the sent user-message bubble with the correct path and the assistant's model-side view with the extra backslash.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the Windows path case and tracing the rich-text/Markdown serialization boundary into model input construction. Compare the text displayed in the sent-message bubble with the exact text delivered to the model; done means an unformatted path such as Z:\AREA_01 arrives unchanged, while existing inline-code and forward-slash workarounds remain unaffected.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
desktop-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.