Daemon: sandboxes
cua.daemon.v1 SandboxService: the local cua daemon API for sandboxes in every location.
cua.daemon.v1 SandboxService: the local cua daemon API for sandboxes in every location.
The local cua daemon API (a Unix socket on the host, not cua-spacesd): sandbox lifecycle across locations.
Source: libs/cua/proto/cua/daemon/v1/sandboxes.proto.
cua.daemon.v1.SandboxService
Sandbox lifecycle across providers (Fleet, local VMM, direct).
Sandboxes are daemon-agnostic: nothing here assumes cua-spacesd is installed in the guest.
/cua.daemon.v1.SandboxService/ListSandboxes, unary: ListSandboxesRequest to ListSandboxesResponse.
Lists sandboxes known to the daemon.
/cua.daemon.v1.SandboxService/CreateSandbox, unary: CreateSandboxRequest to CreateSandboxResponse.
Creates a sandbox where location says (local by default), or
connects to an existing machine (direct:<addr>).
/cua.daemon.v1.SandboxService/CancelCreateSandbox, unary: CancelCreateSandboxRequest to CancelCreateSandboxResponse.
Cancels a CreateSandbox of a named sandbox still running: the work
in flight stops (an image download, a boot, a claim) and what the
create made is deleted; a sandbox of that name that existed before is
never touched. Finished image downloads stay cached. Returns once the
clean-up is done. Idempotent: cancelled is false when no create of
that name was running. A CreateSandbox whose caller goes away (a
closed connection) is cleaned up the same way.
/cua.daemon.v1.SandboxService/GetSandbox, unary: GetSandboxRequest to GetSandboxResponse.
Returns one sandbox.
/cua.daemon.v1.SandboxService/DeleteSandbox, unary: DeleteSandboxRequest to DeleteSandboxResponse.
Deletes (or releases, or detaches from) a sandbox.
/cua.daemon.v1.SandboxService/ConnectSandbox, unary: ConnectSandboxRequest to ConnectSandboxResponse.
Reattaches to a sandbox by ref (a state file, a live cloud claim or an address) and keeps the handle in the daemon.
/cua.daemon.v1.SandboxService/SuspendSandbox, unary: SuspendSandboxRequest to SuspendSandboxResponse.
Suspends a sandbox (local: pause; Fleet: scale to zero).
/cua.daemon.v1.SandboxService/ResumeSandbox, unary: ResumeSandboxRequest to ResumeSandboxResponse.
Resumes a suspended sandbox.
/cua.daemon.v1.SandboxService/RestartSandbox, unary: RestartSandboxRequest to RestartSandboxResponse.
Restarts a sandbox.
/cua.daemon.v1.SandboxService/KeepAlive, unary: KeepAliveRequest to KeepAliveResponse.
Extends a Fleet claim lease.
/cua.daemon.v1.SandboxService/WaitReady, unary: WaitReadyRequest to WaitReadyResponse.
Waits until user-declared readiness probes pass.
/cua.daemon.v1.SandboxService/ServiceRequest, unary: ServiceRequestRequest to ServiceRequestResponse.
Sends one HTTP request to a named service of a sandbox. Credentials (for example the Fleet bearer) stay in the daemon.
/cua.daemon.v1.SandboxService/ForwardPort, unary: ForwardPortRequest to ForwardPortResponse.
Forwards a daemon loopback port to a guest port.
/cua.daemon.v1.SandboxService/CloseForward, unary: CloseForwardRequest to CloseForwardResponse.
Stops a forward started by ForwardPort.
/cua.daemon.v1.SandboxService/GetEnvEndpoint, unary: GetEnvEndpointRequest to GetEnvEndpointResponse.
Probes cua-spacesd in the sandbox and returns the daemon's loopback
passthrough endpoint for it. cua.env.v1 calls sent there are proxied
with the sandbox credentials attached by the daemon.
/cua.daemon.v1.SandboxService/GetServiceEndpoint, unary: GetServiceEndpointRequest to GetServiceEndpointResponse.
The daemon's loopback passthrough for a named service of a sandbox:
any HTTP request (any method, streamed both ways, headers passed
through) sent to url + path reaches that path on the service with the
sandbox's route and credentials attached by the daemon. For MCP
clients, SSE and anything else served over HTTP.
/cua.daemon.v1.SandboxService/GetServiceUrl, unary: GetServiceUrlRequest to GetServiceUrlResponse.
Returns a URL for a named service usable from this machine without credentials: the published loopback port locally, a signed service URL in the cloud.
/cua.daemon.v1.SandboxService/CreatePublicUrl, unary: CreatePublicUrlRequest to CreatePublicUrlResponse.
Creates a shareable URL for a named service that expires: a signed service URL in the cloud; locally a loopback proxy URL with its own token, served by the daemon.
/cua.daemon.v1.SandboxService/RevokePublicUrl, unary: RevokePublicUrlRequest to RevokePublicUrlResponse.
Revokes a URL created by CreatePublicUrl.
cua/daemon/v1/sandboxes.proto#A sandbox.
| Field | # | Type | Description |
|---|---|---|---|
name | 1 | string | Name (unique within its location; see id). |
provider | 2 | SandboxProvider | Provider. |
state | 3 | SandboxState | State. |
image | 4 | string | Image reference, for example "ghcr.io/trycua/linux:24.04". |
endpoints | 5 | map of string to string | Reachable endpoints by service name, for example {"env": "http://127.0.0.1:52011"}. |
labels | 6 | map of string to string | User labels. |
created_at | 7 | google.protobuf.Timestamp | Creation time. |
error | 8 | string | Failure reason when state is SANDBOX_STATE_FAILED. |
runtime_type | 9 | string | Runtime identifier as persisted in the state file (fleet, direct, docker, qemu, lume, ...). |
ephemeral | 10 | bool | True when the sandbox has no state file and is torn down on delete. |
services | 11 | map of string to uint32 | Declared services: logical name to guest port (0 when only the name is known, for example on Fleet). |
location | 12 | string | Where the sandbox runs: "local", "cloud", "direct" (a machine reached by address) or "relay". |
expires_at | 13 | google.protobuf.Timestamp | When the sandbox expires unless kept alive. Unset when unknown or never (cloud sandboxes held by the daemon are renewed while held). |
provider_details | 14 | map of string to string | Provider internals for debugging (cloud: pool, namespace, claim; local: backend, container_id). Not part of the portable API. |
id | 15 | string | Qualified ref: "local:<name>", "cloud:<name>" or "direct:<host:port>". Every request's name accepts it (and a bare name when that name is unique across locations). |
kind | 16 | string | What kind of machine it runs as: "container" or "vm"; empty when not known (an existing machine, or a cloud sandbox this daemon did not create). |
runtime | 17 | string | The engine that runs it: "gvisor", "runc", "qemu", "lume" or "kubevirt"; empty when not known. |
A user-declared readiness probe. With no probes a sandbox is ready as soon as its provider reports it running.
| Field | # | Type | Description |
|---|---|---|---|
port | 1 | uint32 | Guest port to probe. |
http_path | 2 | string | HTTP path. Empty means a TCP connect probe. |
http_status | 3 | uint32 | Exact HTTP status to wait for. 0 accepts any 2xx. |
An extra container sharing a sandbox's network namespace: the sandbox
reaches its ports on localhost, and services may name them. Local
containers and cloud container (gVisor) sandboxes only.
| Field | # | Type | Description |
|---|---|---|---|
name | 1 | string | Name, unique within the sandbox (a DNS label other than main). Empty derives it from the image. |
image | 2 | string | Image reference. |
command | 3 | repeated string | argv replacing the image's entrypoint. Empty lets the image decide. |
env | 4 | map of string to string | Environment (plain values, not secrets). |
ports | 5 | repeated uint32 | Ports it listens on. |
Credentials for a private registry. Write-only: never logged, stored in state files or returned.
| Field | # | Type | Description |
|---|---|---|---|
registry | 1 | string | Registry host (ghcr.io, localhost:5000). Empty means the image's. |
username | 2 | string | User name (AWS for ECR tokens). |
password | 3 | string | Password or token. |
One image build step, as in images.cua.ai/v1alpha1 recipes.
| Field | # | Type | Description |
|---|---|---|---|
type | 1 | string | apt_install, pip_install, uv_install, run or app_install. |
packages | 2 | repeated string | Packages (the install types). |
command | 3 | string | Shell command (run). |
app_id | 4 | string | App id (app_install). |
A local file copied into a built image.
| Field | # | Type | Description |
|---|---|---|---|
source | 1 | string | Path on the daemon's machine. |
destination | 2 | string | Absolute path in the image. |
Image layers built on top of the sandbox's image. Cloud: a remote build through the images API, cached by content.
| Field | # | Type | Description |
|---|---|---|---|
layers | 1 | repeated ImageLayer | Steps, in order. |
env | 2 | map of string to string | Image environment. |
ports | 3 | repeated uint32 | Ports the image exposes. |
files | 4 | repeated BuildFile | Files copied into the image. |
timeout | 5 | google.protobuf.Duration | Build budget. Unset uses one hour. |
Request for SandboxService.ListSandboxes.
| Field | # | Type | Description |
|---|---|---|---|
provider | 1 | SandboxProvider | Deprecated. Deprecated: use location. Only sandboxes of this provider. Unspecified lists all. |
include_cloud | 2 | optional bool | Also list the account's live Fleet claims (not only the ones this machine knows) when the provider filter allows cloud sandboxes. Unset means true. Without Fleet credentials nothing is added. |
location | 3 | string | Only sandboxes in this location: "local", "cloud" or "direct". Empty lists every location. Wins over provider. |
Response for SandboxService.ListSandboxes.
| Field | # | Type | Description |
|---|---|---|---|
sandboxes | 1 | repeated Sandbox | Sandboxes. |
warnings | 2 | repeated string | What the listing left out, for example "cloud sandboxes not listed: <reason>". The listing still succeeds. |
Request for SandboxService.CreateSandbox.
| Field | # | Type | Description |
|---|---|---|---|
name | 1 | string | Desired name. Empty lets the daemon generate one. |
provider | 2 | SandboxProvider | Deprecated. Deprecated: use location. Used only when location is empty. |
image | 3 | string | Image reference (local and cloud sandboxes). |
pool | 4 | string | Cloud: claim from this existing pool (Fleets advanced API). |
url | 5 | string | Deprecated: use location "direct:<addr>". The address of an existing machine. |
token | 6 | string | Access token for the direct provider's spacesd, if any. |
labels | 7 | map of string to string | User labels. |
os | 8 | string | Guest OS: linux (default), macos or windows. |
cpus | 9 | uint32 | vCPUs. 0 uses the provider default. |
memory_mb | 10 | uint64 | Memory in MiB. 0 uses the provider default. |
ports | 11 | repeated uint32 | Extra guest ports to publish (local) or expose as port-<n> services (Fleet). |
services | 12 | map of string to uint32 | Named services: logical name to guest port. env defaults to 3211. |
wait_for | 13 | repeated ReadinessProbe | Readiness probes. |
ready_timeout | 14 | google.protobuf.Duration | Total readiness budget. Unset uses the provider default. |
env | 15 | map of string to string | Guest environment. Local: container environment or cloud-init; cloud: the template environment (hashed into the managed pool key). |
fleet_runtime | 16 | string | Deprecated. Deprecated: use runtime. Cloud runtime (kubevirt, gvisor), used when runtime is empty. |
fleet_replicas | 17 | uint32 | Deprecated: initial replicas of a new managed Fleet pool (> 0 means warm). 0 leaves it to fleet_warm. |
fleet_ttl_seconds | 18 | uint32 | Fleet claim TTL in seconds after creation. 0 uses the default (managed pools: CUA_FLEET_CLAIM_TTL, renewed by the daemon while the sandbox is held). |
fleet_warm | 19 | optional bool | Managed Fleet pools (no pool): start a new pool with one warm replica. Unset uses CUA_FLEET_WARM. Existing pools are never resized. |
fleet_max_pool_size | 20 | uint32 | Managed Fleet pools: autoscaling ceiling. 0 uses the default (CUA_FLEET_MAX_POOL_SIZE, 10). |
command | 21 | repeated string | The sandbox's command (argv), replacing the image's entrypoint. Empty lets the image decide. Local containers: ENTRYPOINT; local Linux VMs: run by cloud-init; cloud pod runtimes: the template command. Cloud VMs (KubeVirt) and macOS guests reject it. |
sidecars | 22 | repeated Sidecar | Sidecar containers sharing the sandbox's network namespace. Local containers and cloud container sandboxes; VMs reject them. |
registry_secret | 23 | RegistrySecret | Credentials for a private image (and sidecar images on its registry): local pulls use them; the cloud stores them as the sandbox's registry pull Secret. Never logged or returned. |
build | 24 | ImageBuild | Image layers built on top of image before the sandbox starts. |
container_runtime | 25 | string | Deprecated. Deprecated: use runtime. Local container sandboxes: runc or gvisor, used when runtime is empty. Cloud sandboxes ignore it. |
fleet_apply | 26 | bool | With pool: update that pool's template to the sandbox fields given here (image, command, env, services, sidecars, cpus, memory) instead of failing with POOL_SPEC_MISMATCH when they differ. Managed pools refuse. |
owner_pid | 27 | uint32 | The client process that owns an ephemeral sandbox (no name). The daemon records it in the sandbox's lease, so a local ephemeral sandbox is reaped after its client dies even while the daemon runs. 0: the daemon itself owns it. |
network | 28 | string | Guest network: empty or default gives outbound network (like a Docker container); none cuts egress while published ports still work. Only local QEMU VMs honour none; containers, Lume and cloud sandboxes reject it. |
location | 29 | string | Where it runs: "local", "cloud", "direct:<addr>" (an existing machine running cua-spacesd), or a registered provider (SANDBOX_PROVIDER_CONTRIB, e.g. "e2b"). Empty uses the default (default.on in the config, CUA_DEFAULT_ON, else "local"); clients resolve the default on their side and send it explicitly. |
kind | 30 | string | What kind of machine: "auto" (empty), "container" or "vm". Auto decides from the image: macOS and Windows images are VMs, an image with a container rootfs is a container, a disk-only image is a VM. |
runtime | 31 | string | Which engine: "auto" (empty) or one the location offers for the kind. Local: "gvisor", "runc" (containers), "qemu", "lume" (VMs). Cloud: "gvisor" (containers), "kubevirt" (VMs). A registered provider offers its own engines. Anything else is DAEMON_ERROR_REASON_INVALID_PLACEMENT, listing the valid values. |
keep_on_failure | 32 | bool | Keep a named sandbox whose readiness check fails (its cloud claim, VM or container, and its record) for debugging. False: a failed create deletes what it made and releases the claim. Ephemeral sandboxes are always deleted. |
gpu | 33 | string | A GPU option of the runtime it runs on (GetGpuSupport): "paravirtual" (a macOS VM on Lume: GPU acceleration, experimental), "virgl" (QEMU on Linux), "nvidia" (a runc container on Linux), a contrib provider's GPU type; "auto" picks the runtime's own. Empty: no GPU. An option the runtime does not offer here is DAEMON_ERROR_REASON_INVALID_ARGUMENT or _UNSUPPORTED, saying why. |
Response for SandboxService.CreateSandbox.
| Field | # | Type | Description |
|---|---|---|---|
sandbox | 1 | Sandbox | The sandbox. |
Request for SandboxService.GetSandbox.
| Field | # | Type | Description |
|---|---|---|---|
name | 1 | string | Sandbox ref ("local:<name>", "cloud:<name>", "direct:<host:port>", a legacy id) or a name that is unique across locations. |
Response for SandboxService.GetSandbox.
| Field | # | Type | Description |
|---|---|---|---|
sandbox | 1 | Sandbox | The sandbox. |
Request for SandboxService.CancelCreateSandbox.
| Field | # | Type | Description |
|---|---|---|---|
name | 1 | string | The sandbox's name. |
Response for SandboxService.CancelCreateSandbox.
| Field | # | Type | Description |
|---|---|---|---|
cancelled | 1 | bool | A create of that name was running and was stopped. |
message | 2 | string | What was removed and what stays, for people. |
Request for SandboxService.DeleteSandbox.
| Field | # | Type | Description |
|---|---|---|---|
name | 1 | string | Sandbox ref ("local:<name>", "cloud:<name>", "direct:<host:port>", a legacy id) or a name that is unique across locations. |
Response for SandboxService.DeleteSandbox.
No fields.
Request for SandboxService.ConnectSandbox.
| Field | # | Type | Description |
|---|---|---|---|
name | 1 | string | Sandbox ref ("local:<name>", "cloud:<name>", "direct:<host:port>", a legacy id) or a name that is unique across locations. |
Response for SandboxService.ConnectSandbox.
| Field | # | Type | Description |
|---|---|---|---|
sandbox | 1 | Sandbox | The sandbox. |
Request for SandboxService.SuspendSandbox.
| Field | # | Type | Description |
|---|---|---|---|
name | 1 | string | Sandbox ref ("local:<name>", "cloud:<name>", "direct:<host:port>", a legacy id) or a name that is unique across locations. |
Response for SandboxService.SuspendSandbox.
No fields.
Request for SandboxService.ResumeSandbox.
| Field | # | Type | Description |
|---|---|---|---|
name | 1 | string | Sandbox ref ("local:<name>", "cloud:<name>", "direct:<host:port>", a legacy id) or a name that is unique across locations. |
Response for SandboxService.ResumeSandbox.
No fields.
Request for SandboxService.RestartSandbox.
| Field | # | Type | Description |
|---|---|---|---|
name | 1 | string | Sandbox ref ("local:<name>", "cloud:<name>", "direct:<host:port>", a legacy id) or a name that is unique across locations. |
Response for SandboxService.RestartSandbox.
No fields.
Request for SandboxService.KeepAlive.
| Field | # | Type | Description |
|---|---|---|---|
name | 1 | string | Sandbox ref ("local:<name>", "cloud:<name>", "direct:<host:port>", a legacy id) or a name that is unique across locations. |
duration | 2 | google.protobuf.Duration | How long to extend the lease by. |
Response for SandboxService.KeepAlive.
No fields.
Request for SandboxService.WaitReady.
| Field | # | Type | Description |
|---|---|---|---|
name | 1 | string | Sandbox ref ("local:<name>", "cloud:<name>", "direct:<host:port>", a legacy id) or a name that is unique across locations. |
probes | 2 | repeated ReadinessProbe | Probes to wait for. |
timeout | 3 | google.protobuf.Duration | Total budget. |
Response for SandboxService.WaitReady.
No fields.
One HTTP header.
| Field | # | Type | Description |
|---|---|---|---|
name | 1 | string | Header name. |
value | 2 | string | Header value. |
Request for SandboxService.ServiceRequest.
| Field | # | Type | Description |
|---|---|---|---|
name | 1 | string | Sandbox ref ("local:<name>", "cloud:<name>", "direct:<host:port>", a legacy id) or a name that is unique across locations. |
service | 2 | string | Logical service name, for example "env" or "server". |
method | 3 | string | HTTP method. Empty means GET. |
path | 4 | string | Path (and query) under the service. |
body | 5 | bytes | Request body. |
timeout | 6 | google.protobuf.Duration | Timeout. Unset means 30 seconds. |
headers | 7 | repeated HttpHeader | Request headers (for example content-type, or accept and mcp-session-id for MCP). On Fleet the gateway bearer and claim header are added by the daemon and may not be set here. |
Response for SandboxService.ServiceRequest.
| Field | # | Type | Description |
|---|---|---|---|
status | 1 | uint32 | HTTP status. |
headers | 2 | repeated HttpHeader | Response headers. |
body | 3 | bytes | Response body. |
Request for SandboxService.ForwardPort.
| Field | # | Type | Description |
|---|---|---|---|
name | 1 | string | Sandbox ref ("local:<name>", "cloud:<name>", "direct:<host:port>", a legacy id) or a name that is unique across locations. |
port | 2 | uint32 | Guest port. |
Response for SandboxService.ForwardPort.
| Field | # | Type | Description |
|---|---|---|---|
forward_id | 1 | string | Forward id for CloseForward. Empty when no listener was started (the port is only reachable as url). |
guest_port | 2 | uint32 | Guest port. |
local_addr | 3 | string | Loopback host:port accepting connections, when a TCP forward runs. |
url | 4 | string | URL to use (a loopback URL, or the Fleet gateway URL of the port's service). |
Request for SandboxService.CloseForward.
| Field | # | Type | Description |
|---|---|---|---|
forward_id | 1 | string | Forward id. |
Response for SandboxService.CloseForward.
No fields.
Request for SandboxService.GetEnvEndpoint.
| Field | # | Type | Description |
|---|---|---|---|
name | 1 | string | Sandbox ref ("local:<name>", "cloud:<name>", "direct:<host:port>", a legacy id) or a name that is unique across locations. |
probe_timeout | 2 | google.protobuf.Duration | Probe timeout. Unset uses the daemon default. |
Request for SandboxService.GetServiceEndpoint.
| Field | # | Type | Description |
|---|---|---|---|
name | 1 | string | Sandbox ref ("local:<name>", "cloud:<name>", "direct:<host:port>", a legacy id) or a name that is unique across locations. |
service | 2 | string | Service name, for example "mcp". |
Response for SandboxService.GetServiceEndpoint.
| Field | # | Type | Description |
|---|---|---|---|
url | 1 | string | Base URL, for example "http://127.0.0.1:52011/v1/sandboxes/dev/svc/mcp". Append the path. |
headers | 2 | repeated HttpHeader | Headers every request needs (the daemon's loopback bearer). |
Response for SandboxService.GetEnvEndpoint.
| Field | # | Type | Description |
|---|---|---|---|
url | 1 | string | Loopback passthrough base URL, for example "http://127.0.0.1:52011/v1/sandboxes/dev/env". Append the gRPC path. |
token | 2 | string | Bearer token for the passthrough (the daemon's loopback token). |
spacesd_version | 3 | string | spacesd version reported by the probe. |
Request for SandboxService.GetServiceUrl.
| Field | # | Type | Description |
|---|---|---|---|
name | 1 | string | Sandbox ref ("local:<name>", "cloud:<name>", "direct:<host:port>", a legacy id) or a name that is unique across locations. |
service | 2 | string | Logical service name. |
Response for SandboxService.GetServiceUrl.
| Field | # | Type | Description |
|---|---|---|---|
url | 1 | string | The URL (no trailing slash). |
A shareable, expiring URL of a sandbox service.
| Field | # | Type | Description |
|---|---|---|---|
id | 1 | string | Id for RevokePublicUrl. |
url | 2 | string | The URL. |
expires_at | 3 | google.protobuf.Timestamp | When it stops working. |
sandbox | 4 | string | Sandbox name. |
service | 5 | string | Logical service name. |
provider_details | 6 | map of string to string | Provider internals (cloud: namespace, claim; local: upstream). |
Request for SandboxService.CreatePublicUrl.
| Field | # | Type | Description |
|---|---|---|---|
name | 1 | string | Sandbox ref or unique name (with upstream_url, only recorded). |
service | 2 | string | Logical service name. |
ttl | 3 | google.protobuf.Duration | Lifetime, 60 s to 24 h. Unset means 1 h. |
label | 4 | string | Label shown in listings (cloud). |
upstream_url | 5 | string | Share this loopback http:// URL instead of resolving name and service (an embedded SDK runtime asking the daemon to host its URL). |
Response for SandboxService.CreatePublicUrl.
| Field | # | Type | Description |
|---|---|---|---|
public_url | 1 | PublicUrl | The URL. |
Request for SandboxService.RevokePublicUrl.
| Field | # | Type | Description |
|---|---|---|---|
name | 1 | string | Sandbox ref ("local:<name>", "cloud:<name>", "direct:<host:port>", a legacy id) or a name that is unique across locations. |
id | 2 | string | PublicUrl.id. |
Response for SandboxService.RevokePublicUrl.
No fields.
Where a sandbox comes from. Deprecated: requests use the location
string (local, cloud, direct:<addr>), which also names third-party
providers; responses carry Sandbox.location.
| Value | # | Description |
|---|---|---|
SANDBOX_PROVIDER_UNSPECIFIED | 0 | Not set. |
SANDBOX_PROVIDER_FLEET | 1 | Claimed from a Fleet pool. |
SANDBOX_PROVIDER_LOCAL | 2 | Run locally through cua-vmm (Lume, QEMU, container). |
SANDBOX_PROVIDER_DIRECT | 3 | An existing machine reached by URL and token. |
SANDBOX_PROVIDER_CONTRIB | 4 | A contrib provider (third-party platform). |
Sandbox lifecycle state.
| Value | # | Description |
|---|---|---|
SANDBOX_STATE_UNSPECIFIED | 0 | Not reported. |
SANDBOX_STATE_PROVISIONING | 1 | Being created or booted. |
SANDBOX_STATE_RUNNING | 2 | Running and ready (per its readiness probes). |
SANDBOX_STATE_STOPPED | 3 | Suspended or stopped; can resume. |
SANDBOX_STATE_DELETING | 4 | Being deleted. |
SANDBOX_STATE_FAILED | 5 | Failed; see Sandbox.error. |