Errors · Independent guide

Fix UNKNOWN_MODEL in DeepSeek Harness

UNKNOWN_MODEL means the requested model is not available in the active provider configuration. Check the provider route and exact model ID, discover or manually add a supported model, save the complete provider, and test it in a fresh session. A model-list failure alone does not prove inference is unavailable.

Reviewed Oct 4, 2026Developer previewIndependent guide
Evidence status: Official dsh-v0.2.1-alpha.1 documentation review; historical runtime verification remains 0.1.0-rc.7 on Linux x64. Re-check the linked first-party source after a new release candidate.
Track setup progress →

Sharing includes the public link only, without local progress or private configuration.

1. Compare the provider route and exact model ID

Copy the non-secret provider and model identities from the failure. Compare them with Settings → Models and the endpoint’s own documentation. Use the served model ID rather than a display name or a marketing label. Similar-looking aliases can identify different routes.

Confirm which saved provider the model belongs to. A built-in provider and a custom gateway entry can use similar model names while exposing different catalogs. Keep the base URL, protocol and model ID together as one connection contract.

2. Discover the gateway catalog or enter a documented ID

For a custom provider, choose Fetch available models, select the desired entry and save the provider. Merely viewing the discovery result does not change the configured model list. If discovery returns no supported listing, manually add an ID the endpoint documents and save it.

A built-in provider’s discovery comes from the installed catalog. If you changed that provider’s base URL to a gateway, use a custom provider when you need to inspect what the gateway actually serves. A 401 during listing is a credential check; an unsupported listing format is a catalog-discovery check.

3. Inspect catalog replacements and configuration layers

For the reviewed pi-ai adapter, an explicit models list replaces the route’s installed catalog. A model omitted from that replacement is unavailable even if the package normally ships it. modelOverrides adjusts entries of a built-in catalog without replacing the list; it cannot be combined with models in the same provider configuration.

If the UI and expected patch disagree, inspect the effective configuration. Later layers replace complete config rows, so a home patch or command-line overlay can discard provider or model entries from an earlier layer. Preserve the full intended row when fixing it.

Check command
npx --yes @deepseek-ai/dsh@0.2.0-rc.2 --profile web --dump-config

What to check: Inspect the selected provider’s effective models or modelOverrides and the layer comments. The dump may contain sensitive configuration; review it locally and share only a redacted excerpt.

4. Save, select the model and verify a new session

Repair or remove invalid entries in the same provider draft before saving. A failed validation means the draft has not become the working provider configuration. After a successful save, select the intended model and create a new session for a small text request.

If the next error is an upstream “model not found” response, verify that the gateway actually serves the saved ID and that your account can use it. If it is a request-format error, revisit protocol and compatibility options. A configured model is a local declaration, not proof of remote availability.

Frequently asked questions

Why does a model shown in discovery still produce UNKNOWN_MODEL?

Discovery returns candidates for adoption. Add the selected model and save the provider; seeing the candidate does not persist it. Then select the saved model in a fresh session.

Can I enter a model manually if Fetch available models fails?

Yes, when the gateway’s own documentation identifies the model ID and protocol. A missing or incompatible listing endpoint does not establish that model requests fail. Test the manually saved model separately.

Why did adding a models list remove other models?

In the reviewed pi-ai configuration, models replaces the installed catalog for that route. Use modelOverrides for supported edits to built-in catalog entries, or retain every model you intend to offer in an explicit replacement list.

Does changing the default fix an existing conversation?

The new default applies to new sessions. A session that already sent a request retains the model recorded in its log. Start a new session to verify the corrected provider/model selection.

Does UNKNOWN_MODEL mean I should reinstall Node?

First repair the provider/model configuration named by the error. Node installation checks belong to launcher and startup failures. Record your dsh version if its installed catalog differs from the documentation you followed.

First-party sources

Open the pinned or retrieved source before acting on a changed release candidate.

Continue by layer