anomalyco / anomalyco/opencode

"Did you mean" suggests the exact model ID it just rejected

Open
#48,578 1 comment 0 reactions 1 assignee View on GitHub

@neriousy is already working on this.

Since Sep 12, 2026.

Dominant language
TypeScript
Stars
209k
Forks
27.5k
PR merge metrics
PR metrics pending

Description

Description

When a model cannot be resolved, the "Did you mean" suggester can return the exact string it just rejected as its top suggestion:

ProviderModelNotFoundError: Model not found: opencode-omniroute/gpt-sol.
Did you mean: opencode-omniroute/gpt-sol, opencode-omniroute/claude-code-gpt-sol, aug/gpt5.6-sol?

The first suggestion is character-for-character identical to the input. This is actively misleading: it tells the user their model ID is correct while refusing to use it, which sends you looking for typos that do not exist.

Root cause (likely)

The real failure was that the provider was never registered (its plugin failed to load — see #48577). The suggester appears to search a different, more complete catalog than the one used for resolution — probably the full known-model list, rather than the set of models from successfully registered providers.

So the two components disagree: resolution says "this does not exist", suggestion says "this exists". The suggester proves the ID is well-formed and known, which means the error message is describing the wrong problem entirely. The actual problem is an unregistered provider, not an unknown model.

Impact

The misdirection is the cost. The true cause (plugin failed to load) is invisible, while the error implies a typo. I lost significant time treating this as a naming problem before discovering the provider had never registered.

Steps to reproduce

  1. Configure a provider supplied by a plugin, e.g. opencode-omniroute/gpt-sol.
  2. Make that plugin fail to load — pointing it at a non-existent directory works (#48577).
  3. Send any request using that model.
  4. The error suggests the identical string it rejected.

Expected Behavior

Either:

  • Filter self-matches out of suggestions. If the suggestion equals the input, it is not a suggestion.
  • Better: detect the real condition. If the model ID's provider prefix is not a registered provider, say so — e.g. Provider 'opencode-omniroute' is not registered; check that its plugin loaded successfully — instead of framing it as an unknown model.

The second is the real fix. The suggester already has the evidence that the ID is valid; that evidence should change the diagnosis, not decorate the wrong one.

Plugins

@omniroute/opencode-plugin@0.2.1, oh-my-openagent@5.0.0-beta.34

OpenCode version

1.18.30 (also observed on an earlier build, 2026-09-03)

Operating System

macOS 26.6.2 (Darwin 25.6.0, arm64, Apple M1)

Terminal

xterm-256color; Bun 1.4.2

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.