Codex App briefly shows 'New Plugin' then falls back to 'Skills' after startup

Open 💬 11 comments Opened Mar 27, 2026 by kilwizac
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

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

OpenAI.Codex 26.325.2171.0

What subscription do you have?

Plus

What platform is your computer?

Microsoft Windows NT 10.0.26100.0 x64

What issue are you seeing?

Summary

After the March 26, 2026 plugin rollout, the Codex App never consistently exposes the Plugins surface for me.

At startup I sometimes briefly see a New Plugin button, but it quickly switches back to Skills and the plugin flow never becomes available.

This appears distinct from plugin-screen load failures like CXA-2577. In my case, the app seems to settle back into the legacy Skills path instead of actually entering a usable Plugins path.

I also see the same symptom on a MacBook, but the concrete evidence below is from Windows.

What steps can reproduce the bug?

  1. Install/update the Codex App from the Microsoft Store.
  2. Open Codex App on Windows.
  3. Watch the left/sidebar/home capability area during startup.
  4. Sometimes a New Plugin button appears briefly.
  5. After startup settles, the UI reverts to Skills and there is no stable Plugins surface.

What is the expected behavior?

If plugins are enabled for this build/account, the Plugins surface should remain available consistently after startup and should not fall back to Skills.

Additional information

What I already eliminated locally

I reset and normalized the local setup before filing this:

  • Reset persisted Electron app UI state (~/.codex/.codex-global-state.json)
  • Simplified ~/.codex/config.toml back to a clean baseline
  • Disabled old custom subagent overrides so Codex falls back to built-in agents
  • Confirmed feature flags report:
apps                             stable             true
plugins                          stable             true
multi_agent                      stable             true
shell_snapshot                   stable             true

Local evidence

The app-server traces repeatedly show app/list and skills/list requests, but I have not observed a plugin/list request from this installation while reproducing the problem.

Recent local log excerpts:

app-server request: app/list
app-server request: skills/list

Versions

  • Codex App: OpenAI.Codex 26.325.2171.0
  • Bundled CLI / local CLI observed: codex-cli 0.117.0

Why I think this is a distinct bug from CXA-2577

  • CXA-2577 appears to be about the Plugins/App screen failing when opened.
  • This issue is that the app never stably surfaces the Plugins experience after startup, even after a full local config cleanup.
  • The UI briefly hints that Plugins are available (New Plugin) and then reverts to Skills, which feels more like startup gating/state reconciliation than a single broken plugin view.

View original on GitHub ↗

11 Comments

github-actions[bot] contributor · 3 months ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #15962

Powered by Codex Action

kilwizac · 3 months ago

The issue looks a little more specific now.

I traced the local Codex logs after reproducing it again, and the app is not just "choosing Skills" at random. It is attempting plugin startup sync, then failing and falling back.

What I found:

  • ~/.codex/config.toml already has curated plugins enabled (github@openai-curated and notion@openai-curated).
  • The cached plugin manifests are present locally under ~/.codex/plugins/cache/openai-curated/..., so this does not look like a missing local plugin install.
  • On startup, the app repeatedly logs:
INFO  codex_core::plugins::manager: starting remote plugin sync
WARN  codex_core::plugins::startup_sync: startup remote plugin sync failed; will retry on next app-server start error=remote plugin sync request to https://chatgpt.com/backend-api/plugins/list failed with status 403 Forbidden: <html>
WARN  codex_core::plugins::manager: failed to warm featured plugin ids cache error=remote plugin sync request to https://chatgpt.com/backend-api/plugins/featured failed with status 403 Forbidden: <html>

The returned HTML is a Cloudflare challenge page containing Enable JavaScript and cookies to continue, not a JSON plugin response.

I also went as far as reinstalling the app completely, and I see the same Plugins briefly appears -> reverts to Skills behavior on my MacBook as well, so this does not appear to be Windows-only or just a corrupted local install.

I am not on a VPN, and on Windows I also verified there is no WinHTTP proxy and no user Internet proxy configured.

Given the above, my current guess is that the Plugins surface is being gated on successful remote plugin catalog sync, and when chatgpt.com/backend-api/plugins/* gets challenged or denied, the app settles back to the legacy Skills UI.

If helpful, I can provide the exact log timestamps from my most recent reproduction.

sangddn · 3 months ago

@kilwizac Did you find a solution to this?

pbnsilva · 3 months ago

@kilwizac How was this solved?

kilwizac · 3 months ago

@sangddn @pbnsilva My issue was with the Codex config file. Going in and writing in to enable the plugins fixed it. For whatever reason it either removed it or never added it.

sangddn · 3 months ago

Thanks, @kilwizac! In case it helps anyone, I added this to my config:

[features]
plugins = true
nikitrauniyar · 3 months ago

even though it works as workaround, it was never supposed to work this way. Cause I tried with my other ChatGPT account, plugins appear as normal without explicitly adding plugins = true, and this line is not in the config file. Also, when plugins were launched, for every unaffected account, it shows "plugin onboarding message" in blue box, but manually adding plugins = true , the plugin onboarding message is shown up for a second and disappears.

Pavel-Sennikov · 3 months ago

Why is it closed though?

I think it is not intended that I had to temper with config.toml

Traced through the Electron bundle (app.asar → index--dL9tGqL.js). The desktop sidebar visibility logic is:

F = useExperimentalFeatures().some(f => f.name === "plugins" && f.enabled)
B = F && authMethod !== "apikey"
// B controls whether sidebar shows "Plugins" vs "Skills"

F reads from [features] in ~/.codex/config.toml via experimentalFeature/list. The CLI plugin marketplace writes per-plugin entries ([plugins."github@openai-curated"]) but never sets [features] plugins = true. The desktop toggle hook (batchWriteConfigValue with keyPath features.plugins) is only reachable from the desktop settings UI — which is itself gated behind this flag.

Fix: Adding plugins = true under [features] in ~/.codex/config.toml and restarting the app immediately surfaces the Plugins nav entry with full discovery.

[
features
]
plugins = true

Two bugs here:

CLI /plugins install path doesn't set [features] plugins = true. CLI writes plugin configs but skips the experimental feature flag that the desktop requires. This creates a state where plugins are installed and active but the desktop has no way to discover or manage them.

No fallback activation path in desktop. The desktop plugin settings page and the feature toggle are behind the same gate. If the flag isn't set by another path (CLI, backend bootstrap, first-run flow), there's no way to reach it from the desktop UI — a bootstrap deadlock.

The plugins/featured 403 (Cloudflare challenge on chatgpt.com/backend-api/plugins/featured, visible in codex-tui.log:1590) may be a third contributing factor if the desktop was supposed to auto-enable the flag after a successful featured-plugins warmup.

Environment: macOS, desktop 26.325.31654, CLI codex-cli 0.118.0-alpha.2, ChatGPT auth.

vietstone-ng · 3 months ago

The setting plugins = true works, but then many plugins doesn't enable the Install button, it show "App unavailable". Not sure whether it's account limitation?

Pavel-Sennikov · 3 months ago
The setting plugins = true works, but then many plugins doesn't enable the Install button, it show "App unavailable". Not sure whether it's account limitation?

Same was for me, had to hack it again. first option is CLI /plugins marketplace was working for me. Second, if you know plugin ID you can temper with config.toml. Problem is marketplace broken, created issue: https://github.com/openai/codex/issues/16808

grabbou · 3 months ago

FWIW even after enabling, while I can install plugins, apps do not work in the desktop app (doesn't see codex_apps MCP)