Skip to main content
These are the hard limits that bound a single play run. They protect the platform (and your run) from runaway resource use, so a misbehaving play fails fast with a clear error instead of hanging or starving other work.
These values are generated directly from the runtime source, so this page is always current. Need a higher limit for a specific workload? Get in touch — most are raised per workspace.

Submit & input

Bundle & compile

Revision storage

Run duration

Inline composition & budgets

Concurrency

A play run has two independent concurrency layers: map rows (how many rows of a ctx.dataset().map(...) resolve at once — platform-controlled, not configurable per call) and tool calls (outbound provider requests — a global blocking backstop; extra calls wait for a slot rather than failing). Inline ctx.runPlay(...) composes inside its caller and shares both limits; it never creates a separately scheduled child. Per-provider rate pacing — not these counters — is the real outbound throughput governor.

Output & logs

Runtime sheet