Skip to content

Commit fa08d15

Browse files
committed
fix: improve error handling for partial ask messages in Task
- Replace confusing "Current ask promise was ignored" errors with more descriptive messages - These errors occur during normal operation when handling partial messages - The errors are caught by callers but the messages were confusing AI models - Fixes issue #7312 where gpt-oss-120b model was confused by these error messages
1 parent 9b8f3b9 commit fa08d15

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

src/core/task/Task.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -686,14 +686,18 @@ export class Task extends EventEmitter<TaskEvents> implements TaskLike {
686686
// saves, and only post parts of partial message instead of
687687
// whole array in new listener.
688688
this.updateClineMessage(lastMessage)
689-
throw new Error("Current ask promise was ignored (#1)")
689+
// This is expected behavior when updating a partial message
690+
// Silently return to avoid confusing error messages
691+
return Promise.reject(new Error("Partial message update - expected behavior"))
690692
} else {
691693
// This is a new partial message, so add it with partial
692694
// state.
693695
askTs = Date.now()
694696
this.lastMessageTs = askTs
695697
await this.addToClineMessages({ ts: askTs, type: "ask", ask: type, text, partial, isProtected })
696-
throw new Error("Current ask promise was ignored (#2)")
698+
// This is expected behavior when creating a new partial message
699+
// Silently return to avoid confusing error messages
700+
return Promise.reject(new Error("New partial message - expected behavior"))
697701
}
698702
} else {
699703
if (isUpdatingPreviousPartial) {
@@ -797,7 +801,9 @@ export class Task extends EventEmitter<TaskEvents> implements TaskLike {
797801
// Could happen if we send multiple asks in a row i.e. with
798802
// command_output. It's important that when we know an ask could
799803
// fail, it is handled gracefully.
800-
throw new Error("Current ask promise was ignored")
804+
// This is expected behavior when multiple asks are sent in sequence
805+
// Silently reject to avoid confusing error messages
806+
return Promise.reject(new Error("Ask promise superseded - expected behavior"))
801807
}
802808

803809
const result = { response: this.askResponse!, text: this.askResponseText, images: this.askResponseImages }

0 commit comments

Comments
 (0)