Plugins unavailable with ChatGPT login and custom model provider using env_key
Summary
I am using Codex Desktop with ChatGPT login and a custom model provider that uses a separate API key via env_key. Model requests to the custom provider succeed, but plugin discovery / plugin marketplace can still fail or become unavailable.
This looks like a Codex/plugin-discovery issue rather than a model-provider authentication issue: the model provider auth is separated from ChatGPT auth, so Codex should be able to use the custom key for model requests and ChatGPT auth for plugins/connectors.
Environment
- OS: macOS
- Codex CLI:
codex-cli 0.130.0 - Codex Desktop:
0.130.0-alpha.5observed in logs - Auth mode: ChatGPT
- Model provider: custom provider
- Wire API:
responses
Config
model_provider = "cato_company_gpt"
model = "gpt-5.5"
[model_providers.cato_company_gpt]
base_url = "https://model.zhenguanyu.com/v1"
name = "Company Model Platform"
env_key = "MODEL_API_KEY"
wire_api = "responses"
Auth status
$ codex login status
Logged in using ChatGPT
Expected behavior
When using a custom model provider with env_key while also logged in with ChatGPT, Codex should use:
MODEL_API_KEYfor model requests to the custom model provider- ChatGPT auth for plugins, plugin marketplace, connectors, remote plugin sync, and MCP app tools
Plugins should remain available while the active model provider is custom.
Actual behavior
Model requests to the custom provider succeed, but plugin discovery / plugin marketplace can fail. Logs include:
failed to warm featured plugin ids cache
remote plugin sync request to https://chatgpt.com/backend-api/plugins/featured?platform=codex failed with status 403 Forbidden
Directly requesting the same endpoint returns a Cloudflare challenge / 403 instead of JSON, even while codex login status reports ChatGPT auth:
https://chatgpt.com/backend-api/plugins/featured?platform=codex
=> 403 Forbidden
=> content-type: text/html; charset=UTF-8
=> Cloudflare challenge page
Why this seems like a Codex issue
Using env_key successfully separates the custom model provider's authentication from Codex's ChatGPT login. This resolves the earlier failure mode where requires_openai_auth = true caused the custom model provider to receive a ChatGPT token and return 401.
However, after separating model auth from ChatGPT auth, plugin availability still appears to depend on Codex's remote plugin discovery path under chatgpt.com/backend-api/plugins/featured. If this endpoint fails, plugin marketplace / discovery can become unavailable even though:
- ChatGPT login is active
- model requests succeed through the custom provider
- local installed plugin MCP tools may still work if already available/cached
Question
Are Codex plugins officially supported when using a custom model provider with env_key while authenticated with ChatGPT?
If yes, plugin discovery / plugin marketplace should probably continue to work with ChatGPT auth regardless of the active model provider, or degrade gracefully when plugins/featured cannot be warmed.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗