DurinDoor
Providers

Hidden and retired providers

Distinguish hidden cards, risk notices, unsupported executors, and retired model errors.

Provider availability has several states. Existing saved credentials can remain even when the add card is hidden. Instead a provider is retired in one of three ways, and each one behaves differently.

StateCan add newExisting connections routeHow you notice
HiddenNoWhen its executor is availableThe card is gone from the Providers page
Risk noticeYesYesA warning banner on the provider page
Not runnable yetYesNoRequests return HTTP 501

Hidden providers

A registry entry with hidden: true drops out of the Providers page, the media providers list, and the model picker's no-auth list. POST /api/providers answers Invalid provider, the same as for an id that does not exist. A connection saved before the provider was hidden remains stored and still shows in GET /api/providers. Routing also requires an implemented executor and valid credentials. The card for it no longer appears in the dashboard list, so manage or delete it through the management API (/api/providers/{id}).

Hidden in this build:

IdWhy
qwen, iflowDeprecated; hidden since the v0.4.49 changelog entry
ollamaOllama Cloud was hidden; ollama-local is unaffected
difyNeeds a per-application endpoint the connection form cannot collect yet
databricksNeeds a per-workspace serving endpoint the form cannot store yet
factoryWaiting on a correct gateway route
zed, codex-cloudMetadata-only rows with no transport and no models
kimi-coding, gitlab, mmfNo reason recorded in the registry
tortoise, coqui, playht, cartesiaSpeech providers; no reason recorded

Use the catalog for registry IDs. Hidden status and runnable support are separate from model counts.

Some hidden ids have a visible sibling. Use kimi-coding-apikey or kimi for Kimi, gitlab-duo for GitLab Duo, and ollama-local for a local Ollama.

Providers with a risk notice

These stay addable, but the provider page shows a banner saying the provider uses a subscription or OAuth session that was not licensed for router use, and the account may be restricted:

claude, codex, gemini-cli, antigravity, github, kiro, qoder-cn.

This warning does not disable routing, refresh, or quota handling. Per-provider pages: Claude Code, OpenAI Codex, Antigravity, Kiro.

Registry ids with no executor yet

Some ids are in the registry so their card, auth hint, and model list exist, but the executor has not been ported. Any request returns HTTP 501:

{
  "error": {
    "type": "provider_port_pending",
    "message": "...",
    "provider": "...",
    "sourceFiles": ["..."]
  }
}

The current blocked set includes adapta-web, huggingchat, muse-spark-web, suno, t3-web, udio, yuanbao-web, and devin. ChatGPT Web is implemented and is not in that set. It is mostly web cookie providers, plus devin, which has no chat transport. Saving a credential does not enable inference. Choose an implemented provider until a release adds the required transport.

Retired models

Models retire more often than providers. When a catalog model passes its shutdown date, requests for it, and for any alias that resolves to it, get HTTP 410 model_shutdown. A deprecated model that has not shut down yet only logs a warning. Swap the id in your combos or client config for one from GET /v1/models.

For a hidden card, use an available sibling listed above or manage an existing connection through the management API. For HTTP 501, change providers. For HTTP 410, replace the retired model in aliases, combos, and client settings, then verify a new request.

On this page

Edit on GitHub