Codex not loading in VS Code: find what the spinner is hiding
The spinner is a symptom, not a diagnosis. Separate a missing panel from a panel that cannot finish loading, then follow the authentication, interface or remote-environment evidence.
Start here
Record whether VS Code is local or remote, then inspect the Codex extension log for the first repeated error.
Is the panel missing, or still loading?
If you cannot find the Codex panel at all, check that the official extension is installed and enabled in the VS Code window you are using. Follow the current IDE setup instructions rather than installing a similarly named extension.
If the panel opens but keeps spinning, save unsent text and note whether you are in a local window, WSL, a container or Remote-SSH. That environment determines which extension and logs matter.
| What you see in the log | Next check | What it does not prove |
|---|---|---|
| Repeated authentication failures | Follow the login branch | A spinner alone does not mean credentials expired. |
| Initialization repeats although authentication succeeds | Compare the extension build and UI behavior | A successful network request does not mean the panel is healthy. |
| The failure occurs only in Remote-SSH | Compare the remote extension environment | A local CLI result does not test the remote extension. |
| The panel loads but one conversation hangs | Open the session guide | This is no longer simply a panel-loading failure. |
Fixes, by branch
If the log reports expired or invalid authentication
A Linux report found repeated token-refresh errors behind an otherwise silent spinner. This gives you a useful discriminator: look for the actual authentication error before changing login state.
Use the sign-in or account recovery flow provided by your installed extension when available. If authorization is already waiting in a browser, complete that flow before starting another. If the extension exposes no usable recovery action, use the login troubleshooting guide to identify the failed stage.
Do not delete credential files because a forum post associates every spinner with authentication. A new login is only a meaningful test when the evidence points to authentication, and successful login still needs to be followed by a working panel and response.
If authentication succeeds but the panel restarts
Record the installed extension version and whether the problem began immediately after an update. Save your editor work, then close and reopen the affected VS Code window once. If the same initialization sequence returns, preserve a short log excerpt instead of repeatedly reloading.
One Linux report describes an initialization loop despite successful authentication. The author’s version comparison helps identify a possible regression, but does not establish a safe downgrade target for every system. Use the current official extension release information when assessing an update; do not install an arbitrary old package from a mirror.
If only one workspace fails, compare an empty local folder without changing the original workspace settings. A successful comparison narrows the scope; it does not identify which setting caused the difference.
If you use Remote-SSH
Record both sides: the local operating system and VS Code version, plus the remote operating system and installed extension version. Inspect the Codex log belonging to the remote extension host when that is where the extension runs.
A Remote-SSH report shows that the CLI can work while the IDE panel remains unusable. Treat these as separate checks. Do not copy local credentials or configuration into a remote home directory merely to make them look the same.
If you already use the remote CLI, note whether it works in the same remote project. Keep that comparison in a bug report. If you do not use it, collecting the extension error is more useful than installing another tool just for comparison.
How to tell it worked
The panel must finish loading, display the composer and accept a small prompt that receives a response. Seeing an icon or an installed-extension badge is not enough. Check the originally affected workspace, not only the empty comparison folder.
If it still fails
Provide the local/remote environment, extension version, first repeated error and failure timestamp. The reports reference Codex.log under the extension-host logs; its absolute location varies by editor, operating system and remote setup. Use your editor’s log views rather than copying another user’s path.
Remove private prompts, tokens and filesystem details that are not needed. No single repair or universal fixed version is established by the reports reviewed here.
Sources
Each source lists what it is used to support. Sources are re-read on the review schedule, not continuously.
Infinite spinner with token-refresh errors
Linux reporter describes refresh_token_reused and token_invalidated in extension logs. Manual credential deletion and the proposed trigger are not adopted as general guidance.
Linux extension repeatedly initializes while authentication succeeds
Reporter on extension 26.715.31925 describes a webview/initialization loop despite successful model requests. The interpretation is not a confirmed universal root cause.
Remote-SSH panel loading while CLI works
Windows client connected to Ubuntu: extension panel stays loading although the remote CLI works. Several cache and reinstall attempts did not resolve the report.
Official Codex IDE extension documentation
Official extension entry point for installation and current setup instructions; not proof of a fix for these issue reports.
Related guides
How this page is checked
- Evidence level
- Reported - based on public reports, not reproduced here
- Last reviewed
- 2026-09-21
- Content updated
- 2026-09-21
- Full version scope
- Evidence includes Linux extension builds 0.4.46 and 26.715.31925, and a Windows VS Code client connected to Ubuntu through Remote-SSH. These are reported examples, not a complete affected-version list.
- Symptoms indexed
-
- The Codex icon is visible but the chat panel never becomes usable
- The extension log repeats authentication or initialization errors
- The CLI works while the Remote-SSH extension stays on a spinner
Reviewer note
Issue bodies and official IDE documentation were read. No spinner was reproduced here. Branches are diagnostic comparisons; a CLI success does not verify the IDE webview.