Client or integration
Codex App
Area
Proxy and routing
Summary
After removing a provider from ~/.opencodex/config.json, its routed models remain in
~/.codex/opencodex-catalog.json and models_cache.json indefinitely. The ghost models
keep appearing in the Codex App model picker and in codex debug models; selecting one
fails at request time because no provider can serve it. ocx sync and ocx sync-cache
do not remove them. The only recovery is manually deleting the catalog files and re-running
ocx sync. Expected behavior: deleting a provider should drop its routed models from the
catalog on the next sync, while keeping routed entries that external tools (e.g. Cursor)
injected.
Reproduction
- Configure a routed provider, e.g.
future-grok with adapter: openai-chat, then run
ocx sync. Confirm its models are listed in ~/.codex/opencodex-catalog.json (measured
48 occurrences of future-grok).
- Remove the provider from the dashboard or directly from
~/.opencodex/config.json.
The running proxy no longer lists it under GET /api/providers (only 3 providers remain).
- Run
ocx sync again and then ocx sync-cache.
- Observed:
grep -c "future-grok" ~/.codex/opencodex-catalog.json still returns 48; the
Codex App model picker keeps showing the deleted provider's models.
- Workaround that confirms the data source: back up and delete
~/.codex/opencodex-catalog.json, run ocx sync and ocx sync-cache; the ghost models
disappear (count drops to 0).
Version
2.8.0
Operating system
Windows 11 24H2
Provider and model
No response
Logs or error output
No error is raised during `ocx sync`; the stale entries are silently preserved.
Screenshots and supporting files
No response
Redacted configuration
{
"defaultProvider": "openai",
"providers": {
"openai": { "adapter": "openai", "authMode": "oauth" },
"opencode-free": { "adapter": "openai-chat", "authMode": "key" }
}
}
Checks
Client or integration
Codex App
Area
Proxy and routing
Summary
After removing a provider from
~/.opencodex/config.json, its routed models remain in~/.codex/opencodex-catalog.jsonandmodels_cache.jsonindefinitely. The ghost modelskeep appearing in the Codex App model picker and in
codex debug models; selecting onefails at request time because no provider can serve it.
ocx syncandocx sync-cachedo not remove them. The only recovery is manually deleting the catalog files and re-running
ocx sync. Expected behavior: deleting a provider should drop its routed models from thecatalog on the next sync, while keeping routed entries that external tools (e.g. Cursor)
injected.
Reproduction
future-grokwithadapter: openai-chat, then runocx sync. Confirm its models are listed in~/.codex/opencodex-catalog.json(measured48 occurrences of
future-grok).~/.opencodex/config.json.The running proxy no longer lists it under
GET /api/providers(only 3 providers remain).ocx syncagain and thenocx sync-cache.grep -c "future-grok" ~/.codex/opencodex-catalog.jsonstill returns 48; theCodex App model picker keeps showing the deleted provider's models.
~/.codex/opencodex-catalog.json, runocx syncandocx sync-cache; the ghost modelsdisappear (count drops to 0).
Version
2.8.0
Operating system
Windows 11 24H2
Provider and model
No response
Logs or error output
Screenshots and supporting files
No response
Redacted configuration
{ "defaultProvider": "openai", "providers": { "openai": { "adapter": "openai", "authMode": "oauth" }, "opencode-free": { "adapter": "openai-chat", "authMode": "key" } } }Checks