Limits and errors
Plan within execution, payload and retention limits.
These defaults bound a run and its descendants. A shorter caller deadline also limits child execution. Concurrency limits queue work; they do not increase execution capacity.
Execution and data
| Limit | Value |
|---|---|
| Nesting depth | 10 |
| Children per run / simultaneously active children | 100 / 20 |
| Nodes per run tree | 1,000 |
| Concurrent runs per owner / definition | 100 / 20 |
| Action / sandbox action timeout | 30 s / 10 min |
| Script wall-clock timeout | 5 min |
| Workflow default / maximum timeout | 24 h / 7 days |
| Maximum create-run wait | 60 s |
| Payload soft threshold / hard limit | 256 KiB / 1 MiB |
| Call payload / checkpoint inline threshold | 32 KiB / 256 KiB |
| Task executions per run, including loops and retries | 4,000 |
| Durable execution step budget per run | 9,000 |
| Branches per fork / nested concurrent effects | 10 / 25 |
| Idempotency retention | 24 h |
| Run log retention | 30 days |
| Records per page | 100 |
| Label count / key length / value length | 50 / 40 / 500 characters |
| Description length | 1,000 characters |
| SSE heartbeat interval | 20 s |
The payload soft threshold is not the rejection boundary. The hard limit is 1 MiB, measured as encoded UTF-8 JSON bytes. Inline thresholds determine storage handling; they do not permit oversized script output.
Script runtime
| Limit | Value |
|---|---|
| CPU time | At most 30 seconds, further bounded by the remaining deadline |
| Connector requests per script | 1,000, including logs and progress |
| Concurrent connector operations | 20 |
| One log message | 4,096 UTF-8 bytes; longer messages are truncated |
| Call preview | 512 characters |
| Script error detail | 1,000 characters |
| User stack frames retained | Up to 5 |
Script output must be JSON-serializable. Failed output encoding faults the run. Scripts have no checkpoints or transactional rollback. See Write a script for tested error messages and fixes.
Triggers
| Limit | Value |
|---|---|
| Enabled triggers per owner | 100 |
| Minimum every interval | 1 minute |
| cron precision | 5 fields, one minute |
| One-shot at window | Now through one year from now |
| Default catchup window | 300 seconds |
| Future occurrences in a preview | Up to 5 |
| Consecutive firing failures before pause | 5 |
| Consecutive firing failures before automatic pause | 5 |
| Webhook body | 1 MiB |
| webhook-id deduplication | 24 hours |
| Firing history | 30 days |
Find the right error
An HTTP error rejects the request. A faulted run records an execution error in error, even when retrieving that run returns HTTP 200. Keep the run ID and X-Request-Id when investigating.
- Create-run errors: input, target resolution, idempotency and quota failures.
- Publication errors: stale drafts, version conflicts and invalid definitions.
- Trigger errors and schedule errors.
- Webhook errors: body size, input and unavailable URLs.
- Authentication and common errors.
For a concrete schedule failure, INTERVAL_TOO_SHORT reports every must be at least one minute; use PT1M or longer. Do not retry the unchanged invalid schedule.