Limits and constraints
Use this reference to size and validate an integration. Values below are implementation defaults; hosted settings and enabled capabilities can differ.
On this page
Request rates and usageLists, pagination, and uploadsExecution and dataCurrent capability boundariesRequest rates and usage
| Request class | Default rate | Default burst setting |
|---|---|---|
| Ordinary API requests | 120 per minute | 200 |
| AI Studio and expensive routes | 20 per minute | 30 |
| Device authorization start/approve | 20 per minute | 20 |
| Inbound webhook sensor | 60 per minute per token | A separate per-token check |
Limits are applied to identities and request classes; do not assume one universal bucket for every workspace request. Read X-RateLimit-Limit and X-RateLimit-Remaining when provided. Error paths do not consistently preserve Retry-After or even a structured 429 response. Respect that header when present; otherwise use bounded exponential backoff with jitter for safe retries.
Rate limiting and monthly plan quotas are separate. A monthly quota error is not fixed by retrying faster. Read /usage/quota and /billing/plans for the active plan and entitlement values. Metered usage can lag, and zero-valued usage alone does not prove a capability is available. See usage and billing.
Lists, pagination, and uploads
| Operation | Constraint |
|---|---|
| Flow listing | limit defaults to 100; continue with next_token even after a short or empty page |
| Deployment listing | Default 100, capped at 500; no general cursor |
| Run listing | Supply a limit; supplied values are clamped to 1–500 |
| Run logs | Default 500; live results cap at 10,000; follow next_token when present |
| Environment listing | Default 50 |
| Cloud connections | 50 per workspace; 25 resources per connection; 10 AWS KMS keys |
| Catalog datasets / lineage assets | Default 200, maximum 1,000 |
| Catalog search | Default 50, maximum 200 |
| Lineage depth | Default 3, maximum 25 |
| Approval listing | Default 100, maximum 500 |
| Workflow artifact upload | Default maximum 5 GiB; returned part sizes between 5 and 512 MiB; at most 10,000 parts |
| Signed upload URLs | One-hour expiry for artifact and AI attachment uploads |
| AI Studio attachment | 25 MiB per file; per-tier attachment counts also apply |
| AI Studio message / session title | 8,000 / 120 characters |
| AI Studio canvas update | 200,000 encoded bytes |
Many list endpoints return a bounded result without a cursor. Do not build a generic paginator that invents pagination parameters for them. See each API guide and the generated request schema.
Execution and data
Local runs keep the last 20 run directories by default. Each local artifact defaults to a 5 MiB limit. Unsupported output serialization may leave a task successful without a reusable artifact. SDK task timeouts cannot forcibly stop a running thread; external side effects can continue after a timeout.
For backfills, declare and consume the injected logical-time parameters. An incompatible signature can fail or cause the runtime to use packaged defaults instead, which can process the wrong partition. Verify two distinct intervals before bulk submission; see the backfill-compatible example.
Nested local flows have a depth limit of 32. Keyword fan-out with expand zips inputs to the shortest iterable, and local mapped items run sequentially. Async task functions are not automatically awaited by the decorator runtime. See SDK reference.
Built-in node execution has a default 300-second timeout; _timeout_seconds is constrained to 1–3,600. Blocking provider calls can still interfere with cancellation. Individual ingestion nodes cap reads or file counts and do not generally provide pagination or change-data capture. Inspect the exact node's defaults in the catalog.
The SDK build currently packages the flow's source file, not an entire project tree or its dependencies. Keep initial examples in a single file and attach dependency packages as needed. Test custom imports in the hosted runtime.
Current capability boundaries
| Capability | Current consideration |
|---|---|
| Cloud connections | Setup and verification are implemented; runtime credential issuance is not |
| Saved connectors | Configuration and some live tests exist; selected connector IDs do not automatically supply execution credentials |
| Node availability labels | Some labeled production nodes have known execution defects; consult per-node notes |
| SFTP node | No host-key verification configuration is exposed; use a verified client in a custom task for production transfers |
| Nonconcurrent polling sensors | Can remain blocked after their first event; allow_concurrent permits overlaps |
| S3 sensors | Creating a sensor does not arrange customer bucket event delivery |
| Outbound notifications | Best effort; no durable retry/replay API; automatic retry/SLA alerts are not wired |
| Human approval, loop, subflow nodes | Preview; approval does not support durable suspension across worker restarts |
| Protected environments | Deletion protection only, not a deployment approval gate |
| Environment promotion | Does not copy secrets/variables or all runtime/dependency settings |
| Billing checkout and portal | Placeholder behavior; not a complete self-service payment integration |
These constraints belong in integration design and acceptance tests. Release information explains how to check compatibility when upgrading.