Skip to content

Windows Desktop: cannot resume running thread due to C:\ path vs \\?\C:\ path mismatch #23803

Open

Description

@niujiaxu

What version of the Codex App are you using (From “About Codex” dialog)?

26.506.3741.0

What subscription do you have?

plus

What platform is your computer?

Windows x64

What issue are you seeing?

Codex Desktop on Windows fails to resume a previous running thread due to path normalization mismatch.

Error:
cannot resume running thread 019e2aa5-a9f9-7b91-98bb-dbb708cf9bf7 with stale path:
requested C:\Users\Administrator\.codex\sessions\2026\05\15\rollout-2026-05-15T15-59-20-019e2aa5-a9f9-7b91-98bb-dbb708cf9bf7.jsonl,
active \\?\C:\Users\Administrator\.codex\sessions\2026\05\15\rollout-2026-05-15T15-59-20-019e2aa5-a9f9-7b91-98bb-dbb708cf9bf7.jsonl

Both paths refer to the same file on Windows. It looks like Codex compares the raw path strings instead of normalizing Windows extended-length paths.
The session file still exists and is readable, but the app refuses to resume the thread.
Codex version shown in process path: 26.506.3741.0.

What steps can reproduce the bug?

// Run on Windows with Node.js.
// Replace the file path with any existing file on disk.

const fs = require("fs");

const normalPath =
"C:\Users\Administrator\.codex\sessions\2026\05\15\rollout-2026-05-15T15-59-20-019e2aa5-a9f9-7b91-98bb-dbb708cf9bf7.jsonl";

const extendedPath =
"\\?\C:\Users\Administrator\.codex\sessions\2026\05\15\rollout-2026-05-15T15-59-20-019e2aa5-a9f9-7b91-98bb-dbb708cf9bf7.jsonl";

console.log("Normal exists:", fs.existsSync(normalPath));
console.log("Extended exists:", fs.existsSync(extendedPath));

console.log("Raw string equality:", normalPath === extendedPath);

const normalStat = fs.statSync(normalPath);
const extendedStat = fs.statSync(extendedPath);

console.log("Same size:", normalStat.size === extendedStat.size);
console.log("Same mtime:", normalStat.mtimeMs === extendedStat.mtimeMs);

// A resume check that compares raw path strings would incorrectly fail here.
if (normalPath !== extendedPath) {
throw new Error(
stale path: requested \${normalPath}`, active `${extendedPath}``
);
}

What is the expected behavior?

Codex should normalize Windows paths before comparing rollout/session paths. For example, C:... and \?\C:... should be treated as equivalent when they refer to the same file.
Actual behavior
Codex rejects resuming the thread with a stale path error, even though the session .jsonl file still exists and is readable.

Additional information

The user cannot reopen the previous conversation from the sidebar. The only workaround is to manually inspect the .jsonl file and continue in a new conversation, losing the normal resumed-thread experience.

Activity

  1. added
    appIssues related to the Codex desktop app
    on May 21, 2026
  2. added
    bugSomething isn't working
    windows-osIssues related to Codex on Windows systems
    sessionIssues involving session (thread) management, resuming, forking, naming, archiving
    on May 21, 2026
  3. Unknown22X commented on May 24, 2026

    @Unknown22X

    They have said that they have already resolved the problem , update the app to the latest version

  4. ysc0224 commented on May 24, 2026

    @ysc0224

    They have said that they have already resolved the problem , update the app to the latest version

    sadly maybe not?

    #23311

  5. Silverarmor commented on May 28, 2026

    @Silverarmor

    Still Experiencing this today.

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, archivingwindows-osIssues related to Codex on Windows systems

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions