Blog · 27 August 2026 · The foldrun team
No timeouts, on purpose
foldrun sets no clock on your work. Every limit that stops a run is one you wrote in markdown. This is the rule, and the outage that made it a rule.
There is no timeout in foldrun. Not on a step, not on a tool call, not on a run. A step that takes four hours takes four hours. If you want it to stop sooner, you say so — budget: on the flow, verify: on the step, an approval gate — and the runtime does what you wrote.
This is unusual enough that people assume it is an omission. It is a rule, and it came from a specific bad night.
The night
An early version had a sensible-sounding default: a tool call that ran longer than five minutes was killed. A site checkout tool, cloning a 900 MB repository over a slow link, took six. Every run that used it failed at the same step, with a message that said the tool had timed out, which was true and useless. The person on call spent an hour looking for a bug in the tool before finding a number in the platform.
The fix for that night was raising the number. The fix for the pattern was removing it.
Why a platform default is the wrong place
A timeout encodes a belief about how long work should take. The platform does not know that. The person who wrote the tool does, and the person who wrote the flow knows how much they are willing to spend on it. Both of those people have a file to write it in.
When the limit is in the file:
- it is versioned with the thing it limits;
- it is visible to the next person who reads the agent;
- a run that hits it fails with a message that names the line;
- changing it is a commit, not a support ticket.
When the limit is in the platform, none of those are true, and every customer inherits a number chosen for someone else’s workload.
What stops a run, then
Three things, all in markdown:
budget: — dollars per run, per workspace per month, per account per month. Checked between steps. A run over budget stops with the amount and the cap in its headline.
verify: — a check on the step’s conclusion: a substring, a regex, a file that must exist, a shell command, or a judge model. A step that fails verification does not hand off to the next one.
Gates — ! on a step, or ask:, holds the run for a person. There is no limit on how long it waits; a Friday approval decided on Monday resumes on Monday.
And one thing that is not markdown: a person pressing Stop. That is immediate, and the record says who pressed it.
The cost
We pay for this rule with a class of failure: a tool that genuinely hangs — a socket that never closes — hangs forever, and costs sandbox-seconds until someone notices. The budget cap bounds the money; the run page and the notification bound the noticing. We have judged that better than the alternative, which is a platform that quietly decides your work took too long.