What version of the Codex App are you using (From “About Codex” dialog)?
26.810.6296.0; also reproduced on 26.810.4967.0.
What subscription do you have?
ChatGPT subscription. The exact tier is not relevant because the failure occurs in local Desktop filesystem validation before Realtime Voice or any model request starts.
What platform is your computer?
Windows 11 Pro, Microsoft Windows NT 10.0.28000.0, ARM64.
What issue are you seeing?
Realtime Voice cannot start when the default projectless workspace root is a valid NTFS directory symlink.
The UI fails before audio starts:
Unable to start voice chat
Projectless thread directory must be a real directory
The Desktop log records the same causal failure:
Error starting realtime voice
Failed to start realtime in the avatar overlay
errorMessage="Projectless thread directory must be a real directory"
The link is valid and resolves to an existing directory:
C:\Users\<USER>\Documents\Codex
-> D:\<USER>\Documents\Codex
Both .NET Directory.Exists(link) and PowerShell Test-Path -PathType Container return true.
On this system, the Windows Known Documents folder is already redirected to D:\<USER>\Documents. However, the current packaged Desktop code still builds the projectless root as path.join(homeDirectory, "Documents", "Codex"). It then reads metadata without following symlinks and explicitly rejects isSymbolicLink(), which produces the error above during Realtime Voice startup.
This reproduced multiple times in both app versions listed above.
What steps can reproduce the bug?
- In a test profile, create an existing writable directory outside the default path.
- Create an NTFS directory symlink from
%USERPROFILE%\Documents\Codex to that directory.
- Confirm the link resolves as a directory.
- Open an existing projectless task in Codex Desktop.
- Select Start voice chat.
- Observe that the voice overlay fails before audio starts with
Projectless thread directory must be a real directory.
Example setup in PowerShell, when the link path does not already exist:
New-Item -ItemType Directory -Path 'D:\CodexWork'
New-Item -ItemType SymbolicLink -Path "$env:USERPROFILE\Documents\Codex" -Target 'D:\CodexWork'
Test-Path -LiteralPath "$env:USERPROFILE\Documents\Codex" -PathType Container
What is the expected behavior?
Realtime Voice should start when the projectless root resolves to a real writable directory.
The Desktop app should resolve and validate the symlink target or use the OS Known Documents location. A valid directory symlink should not disable voice chat or projectless threads.
Additional information
Related: #32039 covers projectless chat creation being blocked by a valid symlink. This report isolates the separate Realtime Voice entry point, which performs the same validation before audio starts and makes voice unavailable.
#24534 tracks configuration of the projectless workspace root.
Paths, usernames, thread IDs, and log file locations are intentionally redacted.
What version of the Codex App are you using (From “About Codex” dialog)?
26.810.6296.0; also reproduced on26.810.4967.0.What subscription do you have?
ChatGPT subscription. The exact tier is not relevant because the failure occurs in local Desktop filesystem validation before Realtime Voice or any model request starts.
What platform is your computer?
Windows 11 Pro,
Microsoft Windows NT 10.0.28000.0, ARM64.What issue are you seeing?
Realtime Voice cannot start when the default projectless workspace root is a valid NTFS directory symlink.
The UI fails before audio starts:
The Desktop log records the same causal failure:
The link is valid and resolves to an existing directory:
Both
.NET Directory.Exists(link)and PowerShellTest-Path -PathType Containerreturntrue.On this system, the Windows Known Documents folder is already redirected to
D:\<USER>\Documents. However, the current packaged Desktop code still builds the projectless root aspath.join(homeDirectory, "Documents", "Codex"). It then reads metadata without following symlinks and explicitly rejectsisSymbolicLink(), which produces the error above during Realtime Voice startup.This reproduced multiple times in both app versions listed above.
What steps can reproduce the bug?
%USERPROFILE%\Documents\Codexto that directory.Projectless thread directory must be a real directory.Example setup in PowerShell, when the link path does not already exist:
What is the expected behavior?
Realtime Voice should start when the projectless root resolves to a real writable directory.
The Desktop app should resolve and validate the symlink target or use the OS Known Documents location. A valid directory symlink should not disable voice chat or projectless threads.
Additional information
Related: #32039 covers projectless chat creation being blocked by a valid symlink. This report isolates the separate Realtime Voice entry point, which performs the same validation before audio starts and makes voice unavailable.
#24534 tracks configuration of the projectless workspace root.
Paths, usernames, thread IDs, and log file locations are intentionally redacted.