Decompose and Retry on Timeout

When a task times out, the answer is almost never to raise the timeout — it is to break the task into smaller pieces.

What it is

A timeout is a signal that a task is too large for the time budget the system has allocated. The instinct to fix it by raising the timeout is almost always wrong. Longer timeouts increase latency for every run, make failure detection slower, and hide the underlying decomposition problem rather than solving it. When a task times out, the correct response is to decompose it: break it into smaller units that complete reliably within the original time budget, and orchestrate those units rather than running the whole as a single monolith. This applies to LLM calls, agent runs, batch jobs, API requests, and database queries equally. Decomposition also enables parallelism that would otherwise be impossible in a monolithic run.

When to reach for it

When NOT to

Exemplars