web_fetch server_tool_use block sent without its tool_result → Anthropic 400 on next turn

  • OS version: macOS 26.6

  • BoltAI app version: 2.15.0

  • Setapp user: No

  • AI provider & model: Anthropic, Claude (extended thinking on, web_fetch tool enabled)

Steps to reproduce:

  1. Start an Anthropic chat with the web_fetch server tool enabled.

  2. Ask something that makes the model call web_fetch, and let it also emit regular tool_use blocks in the same assistant turn.

  3. Continue the conversation for at least one more turn.

Error message: messages.1: web_fetch tool use with id srvtoolu_01RYeaAtRGtJzhpnvMWP8ys7 was found without a corresponding web_fetch_tool_result block

What's actually wrong: When BoltAI rebuilds the messages array for the follow-up request, the web_fetch_tool_result block belonging to the MOST RECENT server_tool_use is dropped. Earlier web_fetch calls in the same thread are paired correctly — only the latest one loses its result. Once another turn is appended after it, that server_tool_use is a permanent orphan in the history and every subsequent request 400s. The chat is unrecoverable without editing history.

Note on the error text: Anthropic reports the wrong index. It says "messages.1" but the id it quotes belongs to a much later assistant message. Match by block id, not by the index in the message.

Expected: the web_fetch_tool_result is persisted alongside its server_tool_use and replayed in every subsequent request.

Note: the 2.15.0 changelog entry about "Anthropic-powered chats occasionally failing after tool calls when using extended thinking" does not fix this — I'm on 2.15.0 and still hitting it.

Please authenticate to join the conversation.

Upvoters
Status

In Progress

Board
🐛

Bug Reports

Date

5 days ago

Author

Brendan DeBeasi

Subscribe to post

Get notified by email when there are changes.