PlatformSandboxes

Sandboxes limits

Choose a supported Sandbox size and plan tasks around the current beta limits.

Access-gated beta. These values describe the current Sandbox beta, not a launch guarantee. The API and limits can change without a compatibility period. Use the beta for evaluation and feedback, not production data you cannot recreate.

Choose a supported Sandbox size before you start work, then check command output and runtime limits before running long jobs. These beta limits apply to Sandboxes; workflow limits are separate.

LimitCurrent beta value and scopeIf you reach it
AccessInngest Cloud environment with Sandbox beta access enabled.403 access_denied means the environment lacks access. Ask Inngest to enable the beta.
SizeExact per-Sandbox pairs: 1 vCPU / 1,024 MiB, 2 / 2,048 MiB, or 4 / 4,096 MiB. A clone inherits its snapshot's size.Choose both values from one pair. Entitlement or capacity can still reject a supported size; contact Inngest for other sizes.
Active name1–255 Unicode characters, unique among active Sandboxes in a workspace.Reusing a name with the same configuration returns the existing Sandbox. Conflicting configuration returns 409 sandbox_name_taken.
Create readiness waitTypeScript SDK waits 120 seconds by default. runningTimeout changes the wait; false returns before readiness.A wait timeout does not cancel Create or destroy the Sandbox. Get its state and clean up if needed. This is not a boot-time guarantee.
Captured command30-second default; five-minute maximum observation timeout per command.A timeout can leave the command's effects uncertain. Check its effect before repeating a state-changing command. Use a managed process for longer work.
Captured command outputDirect SDK and REST: 4 MiB combined stdout and stderr. step.sandbox: 2 MiB retained tail per step result.Direct output over the cap returns 413 sandbox_exec_output_too_large; the command may have run. The durable result reports truncation. Write large output to a file or external store.
Managed-process wait30-second default; five-minute maximum per wait.The wait ends while the process can keep running. Get the process or wait again.
Managed-process outputApproximately 512 KiB per process across both streams; rings kept for the newest 32 processes in a Sandbox. tailBytes accepts 0–524,288 bytes.Older output can be evicted while metadata remains. Save important output externally. Live streams are best effort.
File upload or download100 MiB per regular file, through the direct SDK or REST. File transfer is unavailable through step.sandbox in the beta.413 sandbox_file_too_large means the file is too large. Split it or use external storage.
Snapshot readiness waitTypeScript SDK waits up to five minutes for a new snapshot to become READY.A timeout stops polling, not snapshot creation. List or Get recent snapshots before creating another.
Snapshot quota and retentionAccount-specific count and stored-byte quotas, with no published numeric values. Each snapshot has a server-defined expiresAt.403 sandbox_snapshot_limit_exceeded means count or storage quota was reached. Delete unneeded snapshots or ask Inngest about your entitlement. Save permanent data elsewhere.
Runtime, disk, and concurrent Sandbox quotaOne hour of active runtime per Sandbox in the newer beta reference. Time spent paused does not count. Disk and concurrent-Sandbox quotas have no published numeric beta values. The beta does not expose user-configurable lifetime, disk size, or resizing.Plan work within the active runtime. Check your beta entitlement with Inngest for disk and concurrent-Sandbox capacity. Destroy Sandboxes when work ends.

The beta uses one fixed image and the workspace's default egress-allowed network. It does not expose custom image, template, VPC, or public ingress selection. The beta also limits argument, environment, process specification, and JSON body sizes.

A snapshot captures memory, disk, environment, image, and resources. A clone has a new Sandbox ID and captured filesystem. Pause and Resume preserve the same Sandbox ID and filesystem; a private pause checkpoint does not count as a user snapshot. Snapshots are crash-consistent, expire, and are not permanent storage. Destroy removes the Sandbox filesystem and process output.