Sandbox state transitions
Understanding how sandboxes transition between different states is crucial for managing their lifecycle effectively. Here’s a diagram showing the possible state transitions:State descriptions
- Running: The sandbox is actively running and can execute code. This is the initial state after creation.
- Paused: The sandbox execution is suspended but its state is preserved.
- Snapshotting: The sandbox is briefly paused while a persistent snapshot is being created. It automatically returns to Running. See Snapshots.
- Killed: The sandbox is terminated and all resources are released. This is a terminal state.
Changing sandbox’s state
Pausing sandbox
When you pause a sandbox, both the sandbox’s filesystem and memory state will be saved. This includes all the files in the sandbox’s filesystem and all the running processes, loaded variables, data, etc.Resuming sandbox
When you resume a sandbox, it will be in the same state it was in when you paused it. This means that all the files in the sandbox’s filesystem will be restored and all the running processes, loaded variables, data, etc. will be restored.Listing paused sandboxes
You can list all paused sandboxes by calling theSandbox.list method and supplying the state query parameter.
More information about using the method can be found in List Sandboxes.
Removing paused sandboxes
You can remove paused sandboxes by calling thekill method on the Sandbox instance.
Sandbox’s timeout
When you connect to a sandbox, the inactivity timeout resets. The default is 5 minutes, but you can pass a custom timeout to theSandbox.connect() method:
Auto-pause
Sandboxes automatically pause when their timeout expires, preserving their full state instead of shutting down. You can resume at any time from exactly where you left off. The default timeout is 10 minutes — configure it with thetimeoutMs/timeout parameter.
.kill() the sandbox, it will be permanently deleted and you won’t be able to resume it.
Network
If you have a service (for example a server) running inside your sandbox and you pause the sandbox, the service won’t be accessible from the outside and all the clients will be disconnected. If you resume the sandbox, the service will be accessible again but you need to connect clients again.Limitations
Pause and resume performance
- Pausing a sandbox takes approximately 4 seconds per 1 GiB of RAM
- Resuming a sandbox takes approximately 1 second
Paused sandbox retention
- Paused sandboxes are kept indefinitely — there is no automatic deletion or time-to-live limit
- You can resume a paused sandbox at any time
Continuous runtime limits
- A sandbox can remain running (without being paused) for:
- 24 hours on the Pro tier
- 1 hour on the Base tier
- After a sandbox is paused and resumed, the continuous runtime limit is reset