diff options
| author | Surma <[email protected]> | 2026-02-09 22:27:48 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-02-09 16:27:48 -0600 |
| commit | 832902c8e346b1fb988bd9864b0fe5b3b8ab9609 (patch) | |
| tree | 8ab7203fd8f637b5d306772f9e9495f76dd2449d | |
| parent | 3d6fb29f0c14bfd924ad2e91e398bfa41adfc67e (diff) | |
| download | opencode-832902c8e346b1fb988bd9864b0fe5b3b8ab9609.tar.gz opencode-832902c8e346b1fb988bd9864b0fe5b3b8ab9609.zip | |
fix: publish session.error event for invalid model selection (#8451)
| -rw-r--r-- | packages/opencode/src/session/prompt.ts | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 561e7feed..d7f73b4f6 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -321,7 +321,18 @@ export namespace SessionPrompt { history: msgs, }) - const model = await Provider.getModel(lastUser.model.providerID, lastUser.model.modelID) + const model = await Provider.getModel(lastUser.model.providerID, lastUser.model.modelID).catch((e) => { + if (Provider.ModelNotFoundError.isInstance(e)) { + const hint = e.data.suggestions?.length ? ` Did you mean: ${e.data.suggestions.join(", ")}?` : "" + Bus.publish(Session.Event.Error, { + sessionID, + error: new NamedError.Unknown({ + message: `Model not found: ${e.data.providerID}/${e.data.modelID}.${hint}`, + }).toObject(), + }) + } + throw e + }) const task = tasks.pop() // pending subtask |
