Defaults and limits
This page lists the defaults and limits a caller meets, with the page that explains each one. In the tables, Fixed means a deployment cannot change the value, and Deployer means the deployer can.
Workspace defaults
The defaults depend on how you create the Workspace:
| Setting | kibo | Go SDK and native API | E2B SDK |
|---|---|---|---|
| CPU | 1 CPU | Required | 1 CPU, set by the deployer |
| Memory | 256 MiB | Required | 1 GiB, set by the deployer |
| Writable layer | Set by the node's storage configuration | Set by the node's storage configuration | 5 GiB, set by the deployer |
| Volume | New Volume at /data, deleted with the Workspace | New Volume at /data, deleted with the Workspace | Same as the others, unless you pass volumeMounts |
| Network | No access | No access | Public internet, unless you pass allowInternetAccess: false |
| Expiration | None | None | 5 minutes in the JS SDK, then deleted. A request with no timeout gets 1 hour, set by the deployer. See Expiration |
See Creating a Workspace and Resources.
Workspace resources
| Limit | Value | Set by | Details |
|---|---|---|---|
| Memory | Whole MiB, at least 128 MiB | Fixed | Template and resources |
| Largest CPU and memory | Whatever a node can place | Deployer | Nodes |
| Writable layer | Whole MiB. 1 MiB is reserved for the next start | Fixed | Template and resources |
| Guest resets on the Firecracker backend | 3 within 10 minutes. The next one moves the Workspace to FAILED | Fixed | Reboot from inside the guest |
Files
| Limit | Value | Set by | Details |
|---|---|---|---|
| One upload | 1 GiB | Fixed | Size and time limits |
| One download response | 1 GiB. kibo, the Go SDK, and the E2B gateway read larger files in parts | Fixed | Transferring file content |
| Transfer speed | 64 MiB/s per transfer | Fixed | Size and time limits |
| Transfer with no data moving | Ends after 1 minute in kibo and the Go SDK. WithStallTimeout changes it in the Go SDK | Caller | What a session offers |
Caller that stops sending or reading on /v1/files | The node aborts the request after 5 seconds | Fixed | Transferring file content |
ListDir | Depth 64, and 10,000 entries in one listing | Fixed | Directories and metadata |
| Watch streams | 64 per Workspace | Fixed | Tracking a directory |
| Watch events | 1000 per second per stream | Fixed | Tracking a directory |
Processes
| Limit | Value | Set by | Details |
|---|---|---|---|
| Output kept for each channel of a process | The latest 1 MiB | Fixed | Lost output |
| Output kept in the guest | 16 MiB or 1/16 of guest memory, whichever is smaller, and at least 1 MiB | Fixed | Lost output |
Reconnection attempts by kibo and the E2B gateway | 30 seconds | Fixed | Reconnection |
Network
| Limit | Value | Set by | Details |
|---|---|---|---|
allow and deny entries | 256 across both lists | Fixed | Network policy |
| Resolvers in a policy | 1 | Fixed | Referencing a Resolver in the policy |
| One DNS query through a Resolver | 4 seconds | Fixed | DNS |
Services and public URLs
| Limit | Value | Set by | Details |
|---|---|---|---|
| Open service connections | 128 per Workspace and 1024 per node | Fixed | Services and ports |
Connections through kibo port forwarding | 32 at the same time | Fixed | Local port forwarding |
| One service connection message | 32 KiB | Fixed | Protocol |
| Public URL lifetime | Required when you create one, 24 hours at most | Fixed | Public URLs |
| Idle connection on an E2B application port | Closed after 15 minutes | Fixed | Application ports |
Credentials
| Limit | Value | Set by | Details |
|---|---|---|---|
| Session credential | 5 minutes by default, 15 minutes at most | Fixed | Credential lifetime |
| Credential bound to an execution | 1 hour at most, and never past the Workspace's expiration time | Fixed | Credential lifetime |
| Operator certificate | 30 days, renewed in the last 10 | Fixed | Connect to ctrl |
| Enrollment key | Single use, 1 hour by default, between 1 minute and 24 hours | Caller, within the range | kibo enrollment create |
API requests
| Limit | Value | Set by | Details |
|---|---|---|---|
| Request message | 4 MiB. 16 MiB for ArtifactPublicationService, 64 KiB for EnrollmentService | Fixed | Protocol |
| Command ID | 1 to 128 bytes. kibo checks it before it sends the request; in the Go SDK, call kibotos.ValidateCommandID | Fixed | Command IDs |
| Wait of a stop or delete | 1 minute, then a retryable UNAVAILABLE. The command keeps running | Fixed | When a command returns |
| Wait of a network change on a running Workspace | 1 minute, then a retryable error, and the Workspace is UNKNOWN until the node reports again | Fixed | When a command returns |
| List page size | 100 | Fixed | Pages |
Labels and annotations
| Limit | Value | Set by | Details |
|---|---|---|---|
| Label name, and label value | 63 characters each. A label prefix can have 253 | Fixed | Labels and annotations |
| All labels on a resource | 65536 bytes | Fixed | Metadata and option size |
| All annotations on a resource | 262144 bytes | Fixed | Metadata and option size |
Export and restore
| Limit | Value | Set by | Details |
|---|---|---|---|
| Archive size | 1 GiB by default | Deployer | Export, import, and restore |
| Archive retention | 24 hours by default | Deployer | Archive retention |
Desktop
| Limit | Value | Set by | Details |
|---|---|---|---|
Actions in one PerformActions request | 64 | Fixed | With the API |
| Typed text across one request | 4096 bytes | Fixed | With the API |
| Wait actions | 2 seconds each and 10 seconds in one request | Fixed | With the API |
| One typed-text action | 1024 bytes | Fixed | Keyboard and text input |
| One clipboard write | 64 KiB | Fixed | Keyboard and text input |
E2B gateway
| Limit | Value | Set by | Details |
|---|---|---|---|
| Create request body | 1 MiB | Fixed | Creating a sandbox |
| Wait for a sandbox to run | 90 seconds, then 502. The start may still finish | Fixed | Creating a sandbox |
Idempotency-Key | 256 bytes | Fixed | Retries with Idempotency-Key |
| Longest timeout in one request | None by default. KIBOTOS_E2B_MAX_TIMEOUT sets one | Deployer | Timeout values |
| Standalone Volumes in one sandbox | 1 | Fixed | Volumes |
Next steps
- Guarantees and limits: what happens to your data, and what Kibotos does not provide.
- Errors: what you see when a limit is exceeded, and what to do.
- Capability names: how to tell which features a server has.
Glossary
Short definitions of the terms used across the Kibotos documentation, in alphabetical order. Each entry links to the page that covers the term in full. On the site, a link to an entry shows its definition when you hover over it.
Errors
This page helps you find out what an error means and what to do next. Look it up by the failure reason a program receives, or by the symptom you see. The linked pages explain each case in full.