fix(messages): prevent audio ID concatenation when merging chunks #8499
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.
Description
This PR fixes a bug where audio IDs were being incorrectly concatenated when streaming audio chunks from OpenAI's
gpt-4o-audio-preview
model, causing "Assistant audio not found" errors.Problem
When streaming audio chunks, the
_mergeDicts
function inlangchain-core/src/messages/base.ts
was concatenating audio IDs, transforming:"audio_6871323ab2fc8191b2cf516af96cd851"
→"audio_6871323ab2fc8191b2cf516af96cd851audio_6871323ab2fc8191b2cf516af96cd851"
This resulted in invalid audio IDs that caused subsequent API requests to fail.
Solution
Added a targeted fix to preserve the first non-empty value for audio ID fields instead of concatenating them:
Testing
Future Considerations
While this addresses the immediate audio ID issue, similar fields may need consideration:
request_id
,response_id
,conversation_id
)_at
,_time
,timestamp
)_id
,uuid
,guid
)index
,position
,sequence
)status
,state
,phase
)Fixes #8487