diff --git a/src/core/task/Task.ts b/src/core/task/Task.ts index 005bb0f292b..30dbeb6f06a 100644 --- a/src/core/task/Task.ts +++ b/src/core/task/Task.ts @@ -2792,6 +2792,7 @@ export class Task extends EventEmitter implements TaskLike { let assistantMessage = "" let reasoningMessage = "" let pendingGroundingSources: GroundingSource[] = [] + let streamChunkCount = 0 this.isStreaming = true try { @@ -2830,6 +2831,7 @@ export class Task extends EventEmitter implements TaskLike { continue } + streamChunkCount++ switch (chunk.type) { case "reasoning": { reasoningMessage += chunk.text @@ -3632,6 +3634,9 @@ export class Task extends EventEmitter implements TaskLike { // or tool_use content blocks from API which we should assume is // an error. + console.log( + `[Task#${this.taskId}.${this.instanceId}] Empty API response: streamChunks=${streamChunkCount}, hasReasoning=${reasoningMessage.length > 0}, contentBlocks=${this.assistantMessageContent.length}`, + ) // Increment consecutive no-assistant-messages counter this.consecutiveNoAssistantMessagesCount++ @@ -3695,10 +3700,12 @@ export class Task extends EventEmitter implements TaskLike { await this.say("api_req_retried") // Push the same content back to retry + // Mark that user message was removed so it gets re-added on retry stack.push({ userContent: currentUserContent, includeFileDetails: false, retryAttempt: (currentItem.retryAttempt ?? 0) + 1, + userMessageWasRemoved: true, }) // Continue to retry the request