diff --git a/packages/core/src/core/loggingContentGenerator.ts b/packages/core/src/core/loggingContentGenerator.ts index 916750b3cf..93a2a22deb 100644 --- a/packages/core/src/core/loggingContentGenerator.ts +++ b/packages/core/src/core/loggingContentGenerator.ts @@ -151,19 +151,26 @@ export class LoggingContentGenerator implements ContentGenerator { startTime: number, userPromptId: string, ): AsyncGenerator { - let lastResponse: GenerateContentResponse | undefined; const responses: GenerateContentResponse[] = []; let lastUsageMetadata: GenerateContentResponseUsageMetadata | undefined; try { for await (const response of stream) { responses.push(response); - lastResponse = response; if (response.usageMetadata) { lastUsageMetadata = response.usageMetadata; } yield response; } + // Only log successful API response if no error occurred + const durationMs = Date.now() - startTime; + this._logApiResponse( + durationMs, + responses[0]?.modelVersion || '', + userPromptId, + lastUsageMetadata, + JSON.stringify(responses), + ); } catch (error) { const durationMs = Date.now() - startTime; this._logApiError( @@ -174,16 +181,6 @@ export class LoggingContentGenerator implements ContentGenerator { ); throw error; } - const durationMs = Date.now() - startTime; - if (lastResponse) { - this._logApiResponse( - durationMs, - responses[0]?.modelVersion || '', - userPromptId, - lastUsageMetadata, - JSON.stringify(responses), - ); - } } async countTokens(req: CountTokensParameters): Promise {