Plugins unavailable with ChatGPT login and custom model provider using env_key

Open 💬 1 comment Opened May 13, 2026 by qiyuey

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.5 observed 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_KEY for 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.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗