Repository navigation
Description
Client or integration
Other: Qoder desktop, managed by the OpenCodex Qoder integration.
Area
Catalog / models
Summary
Connecting Qoder through OpenCodex imports the models successfully, but selecting one and sending a prompt immediately fails with “Something went wrong.”
Observed with OpenCodex 2.89.0 and Qoder desktop 1.1.69 on macOS. The current dev exporter still produces the conflicting configuration.
Reproduction
- Enable the Qoder integration in OpenCodex with at least one model.
- Open Qoder and select an imported OpenCodex model.
- Send a short test prompt.
Expected: Qoder routes the request to the local OpenCodex endpoint.
Actual: Qoder rejects the provider before making a model request. Sanitized log messages:
Custom provider "opencodex" was ignored: models: model key 'opencodex/<model-id>' conflicts with an existing catalog model
FatalRoutingError: Custom Provider model 'opencodex/<model-id>' is not available.
Cause and verified workaround
src/clients/config-export/qoder.ts registers every model twice: in providers.opencodex.models and in modelConfigs.customModels. Qoder's custom-provider registry rejects keys already present in the legacy model catalog and clears the provider projection.
Removing only the matching OpenCodex entries from modelConfigs.customModels, retaining providers.opencodex, and restarting Qoder restored successful replies through both a GPT route and a namespaced Gemini route. Qoder logged HTTP 200 with transport=custom-openai for both.
Proposed fix
- Export one provider catalog, with display names and context limits on its model entries.
- Count that catalog in export summaries.
- Use existing ownership records when refreshing older integrations to remove only the previously managed duplicate rows, preserving unrelated models and refusing edits to owned rows.
- Cover fresh exports, legacy migration, and preservation behavior with regression tests.
Version
OpenCodex 2.89.0; Qoder desktop 1.1.69.
Operating system
macOS 27.0.1 (Apple Silicon).
Checks
- I searched existing issues and documentation.
- I removed secrets, tokens, account details, request credentials, and personal data.
Activity
github-actions commentedon Oct 19, 2026
Automated translation bookkeeping — detected language: English.
github-actions commentedon Oct 19, 2026
Issue reopened
The report now contains the information required by the automated check. Thanks for updating it.
[-]bug(qoder): duplicate model catalogs disable imported provider[/-][+][Bug]: Qoder duplicate model catalogs disable imported provider[/+]Ingwannu commentedon Oct 20, 2026
Checked against trusted dev
12025981e5a304cdb6b1b54f525ba8554f623977. The exporter still emits the same model keys into bothproviders.opencodex.modelsandmodelConfigs.customModels, so the reported duplicate-catalog trigger matches the code. #7391 is the focused fix; I am reviewing its provider-only projection and recorded-fragment migration, especially foreign-row preservation and refusal of edited owned rows. Keep this issue open until that change lands; an open PR is not a released repair.fix(qoder): provider-only catalog, replay-envelope refusal and isolat…
lidge-jun commentedon Oct 24, 2026
Fixed on dev by #7545 (5253164), which carries #7391 by @terrytan95. The Qoder exporter writes the catalog only under
providers.opencodex, removes its previously ownedmodelConfigs.customModelsrows on refresh, and reports an unowned legacy row for the same model as a conflict before writing. Qoder therefore no longer sees duplicate catalogs. This ships in the next release after 2.92.0; please reopen if it recurs.