This page lists the limits that Type applies to code automations. Limits can change. If a limit stops your work, tell us.
| Item | Limit | If you go over it |
|---|
| Run time | 180 seconds for each run | The run fails with a QuickJS timeout. |
| VM memory | 1 GiB | The run fails with “QuickJS execution failed”. |
| VM stack | 1 MiB | The run fails with “QuickJS execution failed”. |
Concurrent setTimeout timers | 256 | The run fails. |
Concurrent setInterval timers | 10 | The run fails. |
| Runs at the same time | 1 for each automation, for all its subscriptions | Other runs wait in a queue. |
| Automatic retries of a failed run | None. A repair runs the original event one time to verify the fix. | The automation pauses. See Troubleshoot and Fix Failed Runs. |
These apply to ctx.tools, ctx.read, ctx.write, and replyInSlackThread.
| Item | Limit | If you go over it |
|---|
| Requests in a run | 128 | Later requests fail with “QuickJS API request budget exceeded”. |
| Requests in progress at the same time | 8 | The extra request fails, and it still counts toward the 128. |
| Action log requests in a run | 200 (100 actions) | The action fails. |
| Request body | 1 MiB | The request fails as not valid. |
| Request URL | 8,192 characters | The request fails as not valid. |
| Response body | 2 MiB | The request fails with “paginate the request”. |
| Request timeout | The rest of the run time | The request fails with timeout. |
| Effect key | 200 characters. Letters, digits, and ._:/-. Starts with a letter or digit. | The request fails with “automationEffectKey is invalid”. |
In fixtures, the request and concurrency limits are not checked.
| Item | Limit |
|---|
| Output, checkpoint, report, handoffs, and action logs together | 2 MiB of UTF-8 JSON |
ctx.setOutput() value | JSON. Shares the 2 MiB. |
ctx.saveCheckpoint() value | JSON. Shares the 2 MiB. |
ctx.setVisualization() value | JSON. Shares the 2 MiB. |
ctx.setSummary() value | 1 to 300 characters |
If the result is larger, the run fails with “QuickJS result exceeds the 2 MiB combined limit for checkpoint, output, visualization and receipts (… bytes)”. Type does not cut the result.
| Item | Limit |
|---|
afterSeconds | 1 to 315,576,000 (10 years) |
maxRuns | 1 to 2,147,483,647 |
| Item | Limit |
|---|
| Chart points | 500 |
| Chart series | 12 |
| Report elements, after repeats expand | 200 |
| Email report images | 12 chart images, 10 MiB |
| Item | Limit |
|---|
| Handoffs in a run | 100 |
effectKey | 1 to 500 characters |
instructions | 1 to 10,000 characters |
tools | 16 tools. Their schemas together must fit in 64 KiB. |
evaluation.question, each criterion | 1 to 2,000 characters |
| Evaluation timeout | 15 seconds. A timeout starts the AI. |
| Item | Limit |
|---|
| Actions in a run | 100 |
| Action ID | 1 to 200 characters, unique in the run |
| Message | 1 to 2,000 characters |
| Log (message and data) | 8 KiB |
| Item | Limit |
|---|
| One sandbox tool call | 170 seconds |
exec_command output | 16 KiB |
| Sandbox readiness check | 60 seconds |
| Sandboxes | 1 for each automation |
| Item | Limit |
|---|
| Files | 256 |
| Total size | 1 MiB |
| One file | 1 MiB |
| File path | 255 characters |
type.json | 64 KiB |
name | 200 characters, unique in the Space |
description | 2,000 characters |
| Webhook adapters in a project | 20 |
| Deploy time | 10 minutes |
| Deploys in progress for each folder | 1 |
| Typecheck and validation | 60 seconds each |
| Typecheck errors shown | 6,000 characters |
| Item | Limit |
|---|
Fixtures in fixtures.json | 20 |
| Fixture name | 120 characters |
expectedError | 2,000 characters |
toolResponses | 128 for each fixture |
integrationResponses | 128 for each fixture |
| Time for all fixtures | 4 minutes. Type runs 4 at a time. |
| Item | Limit |
|---|
| Subscriptions | No fixed number. All settings must fit in 64 KiB. |
| Subscription key | 64 characters |
title | 200 characters |
description | 2,000 characters |
| Events for each subscription | 100 |
| Event name | 200 characters |
| Interval | At least 60 seconds, a multiple of 60 |
| Cron | At most one run each minute |
| Due scheduled runs started each minute | 100 for all of Type |
| Item | Limit |
|---|
| One event | 1 MiB |
| Debounce group | 100 events or 1 MiB |
Debounce key paths | 8 paths, 16 parts each |
quietPeriodMs, maxWaitMs | 1 ms to 24 hours |
| Batch delivered to a method | 1 to 100 events |
| Event schema validation | Depth 32 |
| Item | Limit |
|---|
Slack eq, contains | 40,000 characters |
| GitHub text filters | 65,536 characters |
| GitHub lists | 100 items, 500 characters each |
evaluation questions | 8 |
jev questions | 32 |
| Model call evidence | 64 KiB |
| Model call timeout | 15 seconds |
| Item | Limit |
|---|
| Incoming body | 1 MiB |
| Incoming rate | 120 requests each minute for each workspace |
receive call | 5 seconds, 32 MiB memory |
setup, renew, remove call | 60 seconds, 32 provider requests |
| Events for each request | 100 |
| Fixtures for each adapter | 2 to 20 |
See Webhook Adapter API.
| Item | Limit |
|---|
| Failed runs before a pause | 1 |
| Time for a repair | 30 minutes |