PRODUCTION SCENARIO
An assistant has the web_fetch server tool and a client run_query tool. One response has stop_reason set to tool_use, a server_tool_use block for web_fetch with no result block, and a tool_use block for run_query.
What should the application send next?
Answering here is anonymous. Nothing is saved unless you sign in.
Show answer and explanation
Answer: A user message with only the run_query tool_result, sent with the same tools array
When Claude calls a server tool and a client tool in one parallel group, the API returns before running the server tool; the reply is a user message holding only the client tool_result blocks with the same tools array, and the deferred server tool runs on that request. Text after the results ends the turn and returns a 400 for the unresolved server tool. A tool_result for the web_fetch id is rejected: server tools execute inside the API. Resending unchanged is the pause_turn path, and this stop_reason is tool_use.