summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSurma <[email protected]>2026-02-09 22:27:48 +0000
committerGitHub <[email protected]>2026-02-09 16:27:48 -0600
commit832902c8e346b1fb988bd9864b0fe5b3b8ab9609 (patch)
tree8ab7203fd8f637b5d306772f9e9495f76dd2449d
parent3d6fb29f0c14bfd924ad2e91e398bfa41adfc67e (diff)
downloadopencode-832902c8e346b1fb988bd9864b0fe5b3b8ab9609.tar.gz
opencode-832902c8e346b1fb988bd9864b0fe5b3b8ab9609.zip
fix: publish session.error event for invalid model selection (#8451)
-rw-r--r--packages/opencode/src/session/prompt.ts13
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