Skip to content

fix(sdk): drop incomplete streamed tool calls on flush - #39094

Open
nikkstchv wants to merge 1 commit into
anomalyco:devfrom
nikkstchv:tool-call-flush
Open

fix(sdk): drop incomplete streamed tool calls on flush#39094
nikkstchv wants to merge 1 commit into
anomalyco:devfrom
nikkstchv:tool-call-flush

Conversation

@nikkstchv

@nikkstchv nikkstchv commented Jul 27, 2026

Copy link
Copy Markdown

Issue for this PR

Closes #26412

Type of change

  • Bug fix
  • New feature
  • Refactor / code improvement
  • Documentation

What does this PR do?

OpenAI-compatible providers can stream tool calls where one index gets an id but never receives function.name. @ai-sdk/openai-compatible 2.0.62 buffers name across chunks, but still throws in flush() when a pending tool call never gets a name, failing the whole agent turn.

This bumps the SDK to 2.0.62 and patches flush to clear incomplete pending tool calls instead of throwing. Valid tool calls in the same stream continue to execute.

Related: #24137 (mid-stream name buffering landed in 2.0.58+; this covers the remaining flush case).

How did you verify your code works?

Reproduced with a custom Vesna OpenAI-compatible provider (vesna_code / VesnaCode): agent tool calls previously failed with Expected 'function.name' to be a string when the provider emitted a dangling tool-call index. After the bump + patch, the same session completes tool calls without that error.

Screenshots / recordings

Not applicable (SDK/runtime change, no UI).

Checklist

  • I have tested my changes locally
  • I have not included unrelated changes in this PR

Bump @ai-sdk/openai-compatible to 2.0.62 and patch flush so dangling
tool_call indexes without function.name do not fail the whole stream.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions github-actions Bot added needs:compliance This means the issue will auto-close after 2 hours. and removed needs:compliance This means the issue will auto-close after 2 hours. labels Jul 27, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for updating your PR! It now meets our contributing guidelines. 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Custom OpenAI-compatible provider: "Expected 'function.name' to be a string" on streaming tool call chunks

1 participant