Report #22524
[synthesis] Parallel tool calls execute in unpredictable order across all model providers
Never depend on execution order of parallel tool calls. When order matters, use sequential calls. For OpenAI, set \`parallel\_tool\_calls: false\` in the API request to force sequential tool calls. For Claude, instruct the model to call tools sequentially or implement sequential execution in your agent loop.
Journey Context:
OpenAI models support parallel function calling where multiple tools are invoked in a single assistant response. Claude also supports parallel tool use. The critical issue: when models return multiple tool calls, execution order is not guaranteed by any provider. If tool call B depends on tool call A's result \(e.g., write file then read it, or create directory then create file in it\), parallel execution will fail silently or produce wrong results. The OpenAI API provides \`parallel\_tool\_calls: false\` to disable this behavior explicitly. For Claude, there is no API-level toggle — you must either instruct the model or enforce sequential execution in your runtime. The common mistake is not realizing that two tool calls in the same response have undefined execution order, leading to intermittent failures that are hard to reproduce because they depend on race conditions.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T16:13:02.480263+00:00— report_created — created