vscode codex extention show blank UI when azure openai provider setted.
Resolved 💬 19 comments Opened Oct 28, 2025 by lx1054331851 Closed Oct 29, 2025
💡 Likely answer: A maintainer (github-actions[bot], contributor)
responded on this thread — see the highlighted reply below.
What version of the VS Code extension are you using?
0.50.0
What subscription do you have?
I use azure openai with config.toml and .env
Which IDE are you using?
vs code
What platform is your computer?
Darwin 24.6.0 arm64 arm
What issue are you seeing?
<img width="2038" height="1890" alt="Image" src="https://github.com/user-attachments/assets/8261e35b-e40b-4f31-a554-70d5478569ea" />
codex cli is running properly, but codex extention is show nothing.
few days ago, it is work fine.
What steps can reproduce the bug?
install codex extention, open the extention, it needs to login to chatgpt.
set .env and config.toml, restart vscode and reopen codex extention, it is show nothing.
What is the expected behavior?
_No response_
Additional information
_No response_
19 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
I have the same issue, and downgrading the extention to version
0.4.21worked for me.Same issue here. As @LarchLiu mentioned, downgrading the extension to version 0.4.21 fixed it for me.
Can one of you share what your
config.tomllooks like? Is it something like (in particular, ismodel_providerset to the custom provider you have defined?):@bolinfest
Yes - I have a similar
config.tomlThis regression started after 0.4.21 and is present in both the pre-release and stable version of the extension.
@illgitthat OK, I set a "fake" custom provider:
and defined
AZURE_OPENAI_API_KEYin my~/.codex/.envas myOPENAI_API_KEY, but the sidebar loads as normal for me using0.5.30in stable VS Code (1.105.1).Can you add this to
settings.json:and then go to the Output pane at the bottom and select Codex from the dropdown and report if there's anything unexpected in those logs?
Alternatively, do Open Webview Developer Tools and see if there is anything suspicious in the console there?
@bolinfest
Here are some selected logs from Output >> Codex. I tested vscode insiders and vscode stable.
Potentially relevant:
<img width="1175" height="340" alt="Image" src="https://github.com/user-attachments/assets/683dc889-bd7f-4ab9-b2e9-4c5b139665bc" />
@illgitthat so the link you sent me to notes that:
So are you on Linux or WSL? I guess from the logs, it appears to be Windows/WSL?
@illgitthat the log setting is used in the code, but not declared in
package.json(to reduce noise), so that's why it appears faded.@lx1054331851 you noted that the CLI is working, but
0.50.0is not the one bundled with the extension. On my Mac, the CLI bundled with the extension would is here:So for versions
0.5.30and0.4.30of the extension, the CLI is0.51.0-alpha.2, so I'm curious if that works or not.@bolinfest yes, I'm on Windows using WSL.
And both versions of the CLI work.
@illgitthat to clarify, are you using the WSL extension in VS Code?
@illgitthat thanks, confirming that is extremely helpful! That makes it more likely that a recent change in the extension (as opposed to the CLI) is responsible.
I'm guessing that I know what the answer will be, but if you use the latest Insiders and add these to your
settings.json:Do you see the new icon in the Activity Bar that brings up the new Agent Sessions pane? If so, do you have the OpenAI Codex header in the pane, which hopefully has a list of recent conversations:
<img width="1840" height="1167" alt="Image" src="https://github.com/user-attachments/assets/cc14f400-a512-4f4a-87bb-e5d4190ff2bb" />
Clicking on a conversation should open it in an editor pane, though given what you're seeing in the sidebar, I assume that shows up blank, as well?
The one other thing that might be revealing is Open Webview Developer Tools from the command palette:
<img width="1840" height="1167" alt="Image" src="https://github.com/user-attachments/assets/324db5bd-a80a-42f6-ad0e-d354ca7cf5e7" />
And then perhaps the Console of that pane has an error message that explains why the UI isn't loading in the sidebar?
<img width="1840" height="1167" alt="Image" src="https://github.com/user-attachments/assets/3775effb-10f0-4e50-8405-aee2674fe301" />
@illgitthat I just created an Azure Responses API account and I still can't repro...
@illgitthat On one machine here, we can repro the issue in the sidebar, but not the editor panel. Another option is trying the following in the command palette: Codex: New Codex Editor View.
Do you get a blank screen in the editor view that comes up, as well?
Getting the same issue.. am connected to local ollama model.. the error message in developer tools console is:
_Extension 'openai.chatgpt' wants API proposal 'languageModelProxy' but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check 'vscode.d.ts') or was abandoned._
Downgrading to 0.4.21. solved the issue
OK, we root caused it: working on landing the fix and publishing a new release.
Both the pre-release
0.5.31and the stable release0.4.31should have the fix. I just uploaded both to the Marketplace, but sometimes it takes a few minutes to propagate.Going through the menu shown in the screenshot to install a specific version of an extension usually finds the latest release faster, in my experience (menu items at the bottom of the list):
<img width="1110" height="913" alt="Image" src="https://github.com/user-attachments/assets/3c20fe7b-8afc-4eb1-9f61-233b4c4c0479" />
@bolinfest this fixed it for me. Thank you for the quick fix here.
@illgitthat Awesome, thrilled to hear it worked! And thanks so much for indulging us and sharing so much debugging info.
I can't share the full extension code, but the tl;dr is that the
#[serde(skip_serializing_if = "Option::is_none")]onauth_methodhere:https://github.com/openai/codex/blob/36113509f2fa0df910519556d988876a21acfa57/codex-rs/app-server-protocol/src/protocol.rs#L615-L616
Currently becomes the following TypeScript type due to the way we use https://crates.io/crates/ts-rs:
but because the field is omitted when
null, it should really be:When you use a custom provider that doesn't require the auth flow in the extension,
authMethodisNonein Rust orundefinedin the TypeScript. But based on the type definition, our code only checked forcase nullinswitch (authMethod), which is how this slipped through and got the UI into an invalid state.