Repository navigation
fix(google-genai): keep the finish reason of a streamed response that has no content - #2650
Merged
Luca Forstner (lforst) merged 3 commits intoOct 27, 2026
Conversation
… has no content Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Luca Forstner (lforst)
approved these changes
Oct 27, 2026
Member
|
Thanks for reporting! <3 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When a Gemini stream ends with a chunk that has no content, for example
finishReason: "SAFETY",PROHIBITED_CONTENT, orMAX_TOKENSspent on thinking,aggregateGenerateContentChunksdropped the candidates: it only wrote them when it had collected at least one part. The span output then held onlyusageMetadata, with no finish reason or safety ratings.The candidates of the last chunk are now always logged.
contentis included only when parts were collected, and a candidate with nothing to log is skipped. Responses with content produce the same output as before.Tests:
keeps the finish reason of a stream that ends without contentstreams one chunk withfinishReason: "SAFETY", safety ratings and usage and checks the logged output; it fails onmainand passes here, along with the rest ofgoogle-genai-plugin.test.ts. The recorded e2e streams all end with content, so their snapshots are unaffected. Adds a patch changeset.This change was made with Claude Code.
🤖 Generated with Claude Code
🤖 Generated with Claude Code