May 25 – May 31, 2026
New features
- Update sandbox network rules at runtime. Call
sandbox.updateNetwork()(JS) /sandbox.update_network()(Python) to change a running sandbox’s network configuration without restarting it. See Internet access. - Structured network rules with per-host transforms. Define network rules as structured objects and apply per-host transforms (for example, header injection or URL rewrites) when sandboxes call out to the internet. See Internet access.
AbortSignalsupport for template operations. Cancel template builds and other long-running template calls from the JS SDK using a standardAbortSignal. See the JS SDK reference.- Client-side API key validation. Both SDKs now validate the format of your
E2B_API_KEYbefore making any request, so misconfigured keys fail fast with a clear error.
Updates
- JS SDK uses HTTP/2 with a stable sandbox host URL. Sandbox traffic now goes through a stable host with HTTP/2 by default, reducing connection overhead and improving latency for high-throughput agents.
- Configurable HTTP/2 in the Python SDK. You can now opt out of HTTP/2 when constructing the transport if your environment requires HTTP/1.1.
- Higher concurrency limits in the JS SDK. Default max-concurrency settings have been increased so large agent workloads need less manual tuning.
- Faster sandbox builds. Template builds now parallelize fragmented backing reads and stream compressed templates directly to storage on upload, cutting build and upload times for large templates.
- Lower memory pressure on long-running sandboxes. Page-fault handling and storage upload paths have been reworked to reduce copying and free buffers sooner, improving stability for memory-heavy workloads.
Bug fixes
- Fixed
fromDockerfile/from_dockerfileto correctly handle multi-sourceCOPYandADDinstructions when building custom templates. - Fixed gRPC streams not closing cleanly on watcher and command teardown in the Python SDK, which could leak connections on sandbox shutdown.
- Fixed
lifecycle.on_timeoutandauto_pauseprecedence so they now behave consistently across both SDKs. See Sandbox lifecycle. - Fixed the CLI
e2b auth loginflow on headless machines wherexdg-openis unavailable — the CLI now prints the login URL instead of failing. See CLI. - Fixed Python envd transport stability issues that could cause intermittent disconnects under load.
- Improved sandbox cluster reliability: nodes are no longer evicted from the local view during routine sync, reducing transient sandbox unavailability.
- Removed the deprecated
Sandbox.betaCreate/beta_createmethods. UseSandbox.create/Sandbox.createinstead.