You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Windows setup loop — "Couldn't check Windows setup" / "Windows setup didn't finish", sandbox-setup.exe crashes silently on elevation #42264
App: ChatGPT / Codex Desktop (Microsoft Store)
App version: 26.721.4979.0 (ChatGPT.exe 150.0.7871.128)
Package: OpenAI.Codex_26.721.4979.0_x64__2p2nqsd0c76g0
OS: Windows 11
VC++ Redistributable installed: Microsoft Visual C++ v14 Redistributable (x64) - 14.50.35719 (already up to date, confirmed via Apps & Features)
Summary
The "Finish Windows setup" screen never completes. Clicking "Try again" loops indefinitely, alternating between "Windows setup didn't finish" and "Couldn't check Windows setup." Sandboxed local execution cannot be used as a result.
Steps to reproduce
Launch ChatGPT/Codex Desktop.
App shows "Finish Windows setup."
Click "Try again" (or trigger UAC via the button).
UAC prompt appears and is accepted (Yes).
Setup fails; screen returns to "Windows setup didn't finish" / "Couldn't check Windows setup."
Additional diagnosis performed
Ran codex-windows-sandbox-setup.exe directly from C:\Users<user>\AppData\Local\OpenAI\Codex\bin<hash>\ as Administrator: process launches then disappears immediately with no visible error or window.
Checked Windows Event Viewer (Application log) for the time of the crash: no "Application Error" entry was logged for codex-windows-sandbox-setup.exe — it fails silently, no crash dump generated.
No .sandbox folder or setup_marker.json / deny_read_acl_state.json found under %LOCALAPPDATA%\OpenAI\Codex — the setup helper appears to fail before creating any sandbox state files.
Confirmed UAC itself works normally for other apps (e.g., Command Prompt "Run as administrator" triggers a normal prompt).
Reinstalled/repaired VC++ x64 redistributable — already at newer version (14.50.35719) than the official redistributable installer offered (14.44), so this wasn't the cause.
Updated the app via Microsoft Store to the latest available build — issue persisted.
Restarted the PC after update — issue persisted, same loop.
Tried "Continue with limited access" as a workaround.
Windows 11. ChatGPT/Codex Windows app stuck on “Couldn't check Windows setup.” Uninstalled/reinstalled app and rebooted. Existing %USERPROFILE%.codex.sandbox\setup_marker.json was valid version 5 and my account had Full Control. Backed up .codex, renamed the old setup marker to force reprovisioning, relaunched app but setup still returns to “Couldn't check Windows setup.”
I encountered this same failure on Windows 11 after the ChatGPT/Codex desktop app attempted to update on September 3, 2026.
Observed behavior:
App became stuck in the “Complete Windows setup” / “Windows setup didn’t finish” loop.
Retrying setup did not resolve it.
“Continue with limited access” had no effect and simply returned to the same loop.
The failure persisted after rebooting/reinstalling and into the following day.
This occurred during deadline-critical professional work and effectively made the Codex desktop environment unavailable.
A workaround that successfully recovered the application was to completely close ChatGPT/Codex and rename the user’s .codex directory rather than delete it:
After launching ChatGPT/Codex again, the Windows setup completed successfully and the application opened normally.
Important data-loss/UI issue:
Because Codex started with a new .codex directory, all prior projects initially appeared to be missing. The underlying project/session data was still present in the renamed backup directory, but an ordinary user could reasonably conclude that their projects had been lost.
We recovered the projects safely without restoring the entire prior .codex state, which could potentially reintroduce the setup failure.
With Codex closed, the following durable data was restored from the backup into the newly created .codex directory:
sessions
archived_sessions
session_index.jsonl
.codex-global-state.json
We deliberately did not restore the old runtime/configuration/database state such as config.toml, auth.json, state_5.sqlite, and other potentially corrupted setup state.
After restarting Codex, the projects and their prior conversations were restored successfully and the application remained operational.
Suggested product improvements:
The setup screen should never leave the application in an unrecoverable loop where both Retry and Limited Access fail.
Codex should detect corrupt/incompatible local configuration and offer a safe “rebuild application state while preserving projects and sessions” recovery option.
Project/session data should be clearly separated from disposable runtime/setup state.
Reset/reinstall/update procedures should never make locally stored projects appear lost without an explicit warning and recovery path.
The workaround of rebuilding .codex while preserving project/session files should be documented until the underlying defect is corrected.
Given that Codex is used for production development work, update failures should fail safely into the prior working version rather than blocking access to the environment.
This was not merely an inconvenience. In my case, the failure occurred while I had deadline-sensitive project deliverables due that day. Had the backup directory been deleted rather than renamed during troubleshooting, the consequences could have been substantially worse.
Restoring only the missing shared_matter_base definition to the new user-level ~/.codex/config.toml caused the Windows setup loop to return immediately.
Rolling that user-level profile back out allowed the app to launch again.
I then changed the project-local profile to inherit directly from Codex's built-in :workspace profile and copied the two baseline restrictions into the project-local profile:
With that change, the Windows app launches normally and new tasks in the project work again.
So the project itself does not appear to be the underlying cause. The more specific trigger appears to be the presence/handling of a user-defined global permission profile in the upgraded Windows app, particularly where a project-local profile inherits from that global custom profile. I would still characterize this as a strong observed causal sequence rather than a definitive source-level diagnosis.
This also reveals a recovery hazard: rebuilding ~/.codex can make the desktop app usable again while silently breaking project-local permission profiles that inherit from user-level custom profiles. Users may not discover that second failure until they try to create a new task.
For now, the safer configuration pattern appears to be self-contained project-local profiles that inherit only from built-in profiles such as :workspace, with organization/project baseline restrictions copied into the local profile rather than inherited from a user-level custom profile.
Suggested regression tests:
Windows desktop setup/update with a valid custom [permissions.<id>] profile in ~/.codex/config.toml that extends :workspace.
A project-local .codex/config.toml whose selected profile extends that user-level custom profile.
Recovery/reprovisioning of Windows setup while preserving project-local configs and sessions.
This was the first project on this machine configured with this shared-base/project-child permissions pattern, which helped isolate the behavior.
I encountered a similar Windows setup loop on Codex desktop 26.930.3930.0 / CLI 0.160.0, running Windows 10 build 19045.
CLI doctor reported provisioning complete, but the desktop app-server’s windowsSandbox/readiness returned updateRequired. The sandbox service was Running/Automatic.
A separate app-server session using the desktop-selected cached executable called windowsSandbox/setupStart with mode=elevated. It completed successfully. Fresh readiness checks then returned ready, an elevated sandbox command passed, and the desktop issue was resolved.
No registry receipts were manually created, and no reinstall or package ownership changes were needed.
The attached sanitized report includes the provisioning request, verification results, and relevant log messages. We established a recovery path, but not why earlier setup attempts through the desktop UI failed. Could comparing those execution contexts help narrow this down?
Activity
github-actions commentedon Sep 2, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
keithdelk commentedon Sep 3, 2026
Experiencing the same problem.
Windows 11. ChatGPT/Codex Windows app stuck on “Couldn't check Windows setup.” Uninstalled/reinstalled app and rebooted. Existing %USERPROFILE%.codex.sandbox\setup_marker.json was valid version 5 and my account had Full Control. Backed up .codex, renamed the old setup marker to force reprovisioning, relaunched app but setup still returns to “Couldn't check Windows setup.”
M07Amp commentedon Sep 4, 2026
I encountered this same failure on Windows 11 after the ChatGPT/Codex desktop app attempted to update on September 3, 2026.
Observed behavior:
A workaround that successfully recovered the application was to completely close ChatGPT/Codex and rename the user’s
.codexdirectory rather than delete it:After launching ChatGPT/Codex again, the Windows setup completed successfully and the application opened normally.
Important data-loss/UI issue:
Because Codex started with a new
.codexdirectory, all prior projects initially appeared to be missing. The underlying project/session data was still present in the renamed backup directory, but an ordinary user could reasonably conclude that their projects had been lost.We recovered the projects safely without restoring the entire prior
.codexstate, which could potentially reintroduce the setup failure.With Codex closed, the following durable data was restored from the backup into the newly created
.codexdirectory:sessionsarchived_sessionssession_index.jsonl.codex-global-state.jsonWe deliberately did not restore the old runtime/configuration/database state such as
config.toml,auth.json,state_5.sqlite, and other potentially corrupted setup state.After restarting Codex, the projects and their prior conversations were restored successfully and the application remained operational.
Suggested product improvements:
.codexwhile preserving project/session files should be documented until the underlying defect is corrected.This was not merely an inconvenience. In my case, the failure occurred while I had deadline-sensitive project deliverables due that day. Had the backup directory been deleted rather than renamed during troubleshooting, the consequences could have been substantially worse.
M07Amp commentedon Sep 4, 2026
Follow-up with a more specific finding after recovering the app and isolating the configuration involved. Project/client details are anonymized below.
I had one project using a reusable least-privilege permission model structured like this:
The project itself had a local
.codex/config.tomlsimilar to:The recovery sequence produced a strong A/B indication that the user-level custom permission profile was involved in the Windows setup loop:
With the original
~/.codexpresent, the Windows app remained stuck in the "Windows setup didn't finish" loop.Renaming the entire
~/.codexdirectory allowed Windows setup to complete and the app to launch.Restoring project/session/global-state data, while leaving the old user-level
config.tomlout, still allowed the app to launch.New tasks in the affected project then failed with an error equivalent to:
failed to resolve feature override precedence: permissions profile 'project_matter' extends undefined profile 'shared_matter_base'Restoring only the missing
shared_matter_basedefinition to the new user-level~/.codex/config.tomlcaused the Windows setup loop to return immediately.Rolling that user-level profile back out allowed the app to launch again.
I then changed the project-local profile to inherit directly from Codex's built-in
:workspaceprofile and copied the two baseline restrictions into the project-local profile:With that change, the Windows app launches normally and new tasks in the project work again.
So the project itself does not appear to be the underlying cause. The more specific trigger appears to be the presence/handling of a user-defined global permission profile in the upgraded Windows app, particularly where a project-local profile inherits from that global custom profile. I would still characterize this as a strong observed causal sequence rather than a definitive source-level diagnosis.
This also reveals a recovery hazard: rebuilding
~/.codexcan make the desktop app usable again while silently breaking project-local permission profiles that inherit from user-level custom profiles. Users may not discover that second failure until they try to create a new task.For now, the safer configuration pattern appears to be self-contained project-local profiles that inherit only from built-in profiles such as
:workspace, with organization/project baseline restrictions copied into the local profile rather than inherited from a user-level custom profile.Suggested regression tests:
[permissions.<id>]profile in~/.codex/config.tomlthat extends:workspace..codex/config.tomlwhose selected profile extends that user-level custom profile.This was the first project on this machine configured with this shared-base/project-child permissions pattern, which helped isolate the behavior.
cosmicjj commentedon Oct 3, 2026
I encountered a similar Windows setup loop on Codex desktop 26.930.3930.0 / CLI 0.160.0, running Windows 10 build 19045.
CLI doctor reported provisioning complete, but the desktop app-server’s windowsSandbox/readiness returned updateRequired. The sandbox service was Running/Automatic.
A separate app-server session using the desktop-selected cached executable called windowsSandbox/setupStart with mode=elevated. It completed successfully. Fresh readiness checks then returned ready, an elevated sandbox command passed, and the desktop issue was resolved.
No registry receipts were manually created, and no reinstall or package ownership changes were needed.
The attached sanitized report includes the provisioning request, verification results, and relevant log messages. We established a recovery path, but not why earlier setup attempts through the desktop UI failed. Could comparing those execution contexts help narrow this down?
codex-sandbox-public-report.txt