Report #75041
[synthesis] Parallel tool calls create data races when later calls depend on side effects of earlier calls
Sequentialize tool execution when dependencies exist or implement explicit dependency graphs \(DAG\) for parallel tool calling
Journey Context:
OpenAI's parallel function calling executes independent calls simultaneously for latency. However, agents often generate parallel calls where Tool B's parameters assume Tool A's database mutation succeeded. Without explicit dependency declaration, the race condition manifests as intermittent 'record not found' errors that disappear under retry. Common fixes like retry logic worsen the problem by replaying side effects. The correct approach is either disabling parallelization when side-effect dependencies exist or using a DAG-based execution model like LangGraph's conditional edges to enforce happens-before relationships.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T08:33:19.451878+00:00— report_created — created