What's Changed
API
Compatibility Notes
- Remove deprecated E2B access-token authentication, its management endpoints, and the
access_tokenstable. Clients must use API keys or supported JWT authentication — by @tvi in4580311,110fa5b - Remove database read-replica support — by @jakubno in
23ada3e
Features
- Add sandbox-list sorting by start time, a
startedAfterfilter, and filtering by template ID or alias — by @drankou ine6de33c - Add sandbox workload identity configuration through
iam.tokens, with token definitions preserved across pause, resume, and fork. Admission is feature-gated — by @gm-e2b in13ddb3d - Add feature-gated
/secretscreate, list, get, update, and delete operations backed by a configured secrets-store service. Responses return metadata, not secret values — by @gm-e2b ind42174c,3b56826 - Add dynamic log routing with primary and shadow destinations, plus ClickHouse-backed sandbox and build log reads. Support
LOGS_READ_CONFIGas a fallback for deployments without LaunchDarkly and makeLOKI_URLoptional — by @rguliyev and @svalleru in1b19a3b,8006b78 - Add explicit filesystem-only resume through
memory: falseon resume/connect, behindfs-only-resume-api. This cold-boots from disk without deleting the stored memory snapshot; disk recovery has crash-recovery semantics — by @bchalios in8614ec4,8a3f69d - Add optional CPU-model restrictions for filesystem-only snapshots and orchestrator-release filtering for sandbox placement — by @jakubno in
744a2b0,631be3d - Add cluster registration, stable registration IDs, project assignment lookup, replay-safe assignment/detachment, and authenticated cluster management operations — by @matthewlouisbrockman in
65d37cd,54693ff,7378b89,b0a9d73 - Add guarded cluster cleanup and teardown-readiness checks. Release soft-deleted references during cluster deletion while preserving template/build history — by @matthewlouisbrockman in
7c417f4,a8bd47a - Add administrative passthrough for remote-cluster node-pool management — by @sitole in
8fda5b9 - Expose team running-sandbox counts and outstanding node work through administrative APIs — by @dobrac and @jakubno in
fcc2edb,6cd3e5f
Improvements
- Add machine-readable
error_codevalues and differentiated HTTP statuses for placement failures, surface detailed failure reasons, and include template/build IDs in create errors — by @tomassrnka and @e2b-harness[bot] inc426430,063aa20,1bbdd06 - Share batched sandbox-store scanning and bound store/reconciliation Redis
MGETcommands to 256 keys — by @jakubno and @wj-e2b in2d3e4f9,5e0480d,a23fe66 - Add user-agent and SDK integration attribution, flat
team_idproperties, and egress-proxy usage to product analytics — by @mishushakov, @beran-t, and @arkamar ind83be18,97ea2bd,1fe4959 - Support explicit analytics-collector ports and configurable TLS — by @tvi in
6d41cb5 - Unify service discovery behind shared backend interfaces and support combined orchestrator discovery across schedulers — by @dobrac in
455db4a,8a1c824,9cb80f4 - Track node reachability independently of node status and narrow running-sandbox synchronization payloads — by @jakubno in
315e1bf,cbcb146
Bug Fixes
- Reject non-positive timeouts on sandbox create, resume, and fork — by @chill-czar in
5a4b631 - Expose pagination, sandbox-count, and rate-limit response headers through CORS — by @mishushakov in
e832b1e - Discover local orchestrators as template builders when they provide the template-manager service — by @tvi in
9ea005a - Finish snapshot builds and record terminal template-build status after client disconnects; mark snapshot builds failed when pause is rejected — by @arkamar and @jakubno in
0159f8c,8586a66,42f6997 - Pin sandbox removal to the intended execution and make routing-catalog deletion an atomic compare-and-delete — by @jakubno and @tomassrnka in
c29ee26,2a0c0af - Stop retrying pause on already-killing sandboxes and stagger Redis lock-release retries — by @dobrac and @wj-e2b in
eef64c7,c7241e3 - Rebuild template aliases on the team's current cluster — by @matthewlouisbrockman in
b74dbb6 - Deregister nodes whose gRPC connections have shut down — by @jakubno in
a3200fe - Retain ineligible Nomad nodes during node-pool downscaling — by @wj-e2b in
4f8269a
Dashboard and Project Management
Features
- Add service-JWT-authenticated project administration under
/v1/management, including idempotent project creation and reconciliation — by @ben-fornefeld in0f72030,5337ec3,8c90702 - Add revision-fenced, per-user project membership synchronization with OIDC identities. Older or duplicate revisions cannot overwrite newer membership state — by @ben-fornefeld in
3b1eda7 - Add project-limit overrides and revision-fenced limit synchronization — by @ben-fornefeld and @jakubno in
5ab6259,f4ee390,a2cfe68 - Support API-key authentication on template and build read routes, including default templates — by @ben-fornefeld in
afaa636 - Add team access-status and effective tier/limits endpoints — by @ben-fornefeld and @Kraci in
c044a72,126fc77 - Add administrative team ban/unban and block/unblock operations — by @ben-fornefeld in
c3748c5
Improvements
- Use project naming for generated default names and provisioning messages, and migrate existing generated default team names — by @Kraci in
214364e,7b3d30a - Add
disable-legacy-team-mutationsto reject legacy lifecycle writes with HTTP 412 while retaining reads and management projection writes — by @ben-fornefeld in42bdf4a
Bug Fixes
- Preserve default project memberships during membership projection — by @ben-fornefeld in
3fe9ff6
Authentication
Features
- Add service JWT authentication to API and dashboard administrative routes through
ADMIN_AUTH_PROVIDER_CONFIG— by @ben-fornefeld in9071aac - Expose JWKS, OIDC, and linked OIDC verification through the public auth facade, with a reusable authenticator constructor and self-contained internal package layout — by @ben-fornefeld in
cda31bf,f68e713,7685796 - Allow issuers to omit audience configuration when no audience-match policy is set. Issuer, signature, and temporal-claim verification still apply — by @ben-fornefeld in
6886572 - Add shared authentication context for authorized deployment operators — by @matthewlouisbrockman in
2c58ffe
Bug Fixes
- Invalidate cached authentication when an API key is deleted — by @tvi in
8b02910 - Preserve meaningful authentication failure statuses across alternative security schemes and return a distinct 401 message for malformed API keys — by @tvi, @ben-fornefeld, and @devin-ai-integration[bot] in
c09b592,62e67d4,84362fc
Sandbox Runtime (envd)
Features
- Add opt-in live envd upgrades during resume, preserving process and filesystem-watcher handover state. Add a separate offline rootfs-swap upgrade path for quiesced filesystem-only snapshots — by @kalyazin in
47a7cc8,b8bba83
Improvements
- Cache the host envd binary across resumes and preserve the sandbox's default user through live upgrades — by @kalyazin in
eb4fc37,972e9d3 - Add filesystem freezing through the exec API for older envd versions, behind
fsfreeze-via-exec— by @bchalios in3b2c7d9
Bug Fixes
- Stop the port scanner promptly during shutdown and unblock broadcasts when the scanner exits — by @AdaAibaby and @jakubno in
002fd9f,1b65106 - Wait for workload freeze before snapshot capture, freeze workload-owned cgroups, and stop counting vanished cgroups as freeze/thaw failures — by @kalyazin in
b4dd80f,f06e9bc,27eefde - Flush logs before pause snapshots — by @wj-e2b in
e915d32 - Report process-start resource exhaustion as
resource_exhausted— by @tomassrnka inf733a71 - Remove raw filesystem-tool output from offline envd upgrade errors — by @bchalios in
41917bc - Prevent lost wakeups when cancelling semaphore acquisition — by @jakubno in
a586d1e
Orchestrator
Features
- Allow same-node warm resumes to read memory while deduplication runs, behind
memfd-dedup-inflight-serve— by @kalyazin in77f25a0 - Add in-place checkpoints that resume the same Firecracker process after snapshot capture, plus background copy-on-write memory export. These are opt-in paths requiring synchronous write protection; the in-place path requires an E2B Firecracker release of at least 0.2.0 — by @bchalios in
eb00811,2b48f7c,49eaa7a - Add synchronous userfaultfd write-protection handling and an optional page-tracker source for pause-time dirty memory — by @bchalios in
456db74,90bf3a8 - Move rootfs snapshot export off the pause critical path behind
defer-rootfs-export— by @bchalios inb5b9e18 - Add last-cycle memory prefetch and configurable prefetch coalescing on resume — by @kalyazin in
ea94196 - Add flag-gated pre-boot filesystem journal recovery for cold-boot resumes of snapshots whose filesystems were not quiesced — by @bchalios in
e8dd020 - Add snapshot-admission preflight checks and flag-gated restoration of a retryably refused pause to running. Auto-pause retries have a configurable budget before falling back to a filesystem-only snapshot, whose next resume cold-boots. For remote clusters, enabling
pause-refusal-restorerequires cluster-edge support for restoring routes after refusals — by @bchalios in2a4a64d,1d4e9e3
Improvements
- Add a
shutting-downstate and track/report outstanding node work — by @jakubno inc13dc2d,ee35600,fd9602b - Evaluate feature flags with instance-group context and support per-team guest kernel command-line parameters — by @arkamar and @kalyazin in
8bc99ed,1584004 - Persist whether filesystem-only snapshots were captured with a quiesced filesystem — by @kalyazin in
c60ffc7
Bug Fixes
- Recover from SIGBUS caused by failing disks beneath memory-mapped caches — by @arkamar in
8694d08 - Replace snapshot metadata atomically, recover lost ancestor entries during header persistence, and retain harvested prefetch mappings when snapshot upload is slow — by @jakubno, @arkamar, and @kalyazin in
0c4ad6b,18dd123,aeab31d - Guard draining-state transitions and reject standby while draining — by @jakubno and @sitole in
475a7ee,4c790a0 - Cancel NBD release backoff promptly, release devices when opening is cancelled, and close NBD descriptors before data-path teardown — by @tomassrnka, @kalyazin, and @bchalios in
f6378f5,22b3a10,d489969 - Surface NBD writeback failures at flush and treat failed or signalled filesystem checks as failures — by @kalyazin and @tomassrnka in
c5e1780,d37d801 - Remove empty diff cache files and bound peer blob sends below the receiver's message limit — by @tomassrnka and @arkamar in
82fa0e8,e12837c - Remove the interim Firecracker version gates on filesystem-only pause and its auto-pause fallback — by @bchalios in
4c119f8,99928ee,eeba2aa
Template Builds
Features
- Add distro-aware provisioning for Debian/Ubuntu, RHEL-family images, Arch, and Alpine, plus support for premade NixOS base images — by @tomassrnka in
1abece1,4bd42d2 - Separate build-time disk growth from final free-space targets. Add
minFreeDiskMbto template build requests: omission uses the team's default, zero requests no minimum growth, and growth is best effort without shrinking existing filesystems. Expansion is controlled bybuild-ensure-free-disk-space. The intermediatefreeDiskSpaceMBfield is ignored and removed from the schema — by @gm-e2b in8c8d8d7,fa6f8c2,339dbbf,debf6be - Select build-time envd through
build-envd-versionorDEFAULT_ENVD_VERSION, including release-versioned staged binaries — by @charlie-e2b in18e47dd - Add an opt-in ext4 directory index for newly built root filesystems — by @arkamar in
e187eb4
Improvements
- Add guest console output, Firecracker version overrides, and improved GDB support to
resume-buildandcopy-build. Validate GDB destination buckets before copying snapshots — by @bchalios and @kalyazin inf83f7c1,5385594,9be382f - Install
ssin template builds and the NixOS base image, and provisionfindutilsfor minimal RPM-family images — by @tomassrnka and @charlie-e2b in5071683,12ee9b1
Bug Fixes
- Support filesystem-only snapshots in
copy-build; reuse source metadata for SQL output and reject legacy metadata without required version information — by @arkamar in62add04,e0f0528 - Create trailing-slash
COPYdestinations before moving files — by @tomasvarga ina19b99b - Fall back to
ID_LIKEfor compatible distro derivatives, select chrony's time source at boot, and fix Alpine PHC compatibility — by @tomassrnka in73399b3,7fa567c,dfa9764 - Restore package-owned certificate paths before building the CA bundle and copy skeleton files without depending on a shell
cdcommand — by @tomassrnka in6f17229,af874ef
Networking and Proxy
Features
- Add an nftables-based sandbox network path behind
NETWORK_VERSION=2— by @tomassrnka in761381a - Support HTTPS services inside sandboxes through
network.httpsPorts— by @jakubno ind69867b,b5f419a - Support wildcard domains in outbound HTTPS transform rules, with exact-match precedence and configurable domain limits — by @gm-e2b in
9072e15,d843e3f,5d13e27 - Add shared secret-marker parsing and bound the number of distinct secrets referenced by a transform domain — by @gm-e2b in
f7de418,5b8a468 - Add orchestrator-published sandbox routing records behind separate publish/read flags. Enable publishing for one maximum sandbox lifetime before prioritizing those records in client-proxy — by @sitole in
fc9bc5b
Improvements
- Remove the unimplemented marker from the SOCKS5 egress-proxy schema and correct the ordering of proxy configuration and firewall updates — by @arkamar in
0716edb,7faa59e - Separate egress DSCP marking for template builds and regular sandboxes — by @tomassrnka in
41c38cb
Bug Fixes
- Select JSON versus HTML proxy errors by request intent, add CORS to synthesized responses, and answer proxy-only preflight requests — by @mishushakov and @devin-ai-integration[bot] in
d70ca24,32c6b84 - End aborted Connect streams with a status instead of a truncated response body — by @jakubno in
3affe52 - Restrict access to envd's private endpoints through the sandbox proxy — by @jakubno in
e58069d - Correct handling of egress CIDRs ending at
255.255.255.255— by @tomassrnka in9f6c2eb - Harden local network-slot storage and retire the unused in-memory and Consul KV implementations — by @ValentaTomas in
8dd443a,bc31298,8e3fdf3
Storage and Volumes
Features
- Add Azure Blob storage through
azblob://URLs, Azure Container Registry providers, and Azure-aware public-build copy tooling — by @michalsuba-e2b in21fed5f,7d9f66a,6dde189,f8fb541 - Add region-specific volume-type defaults derived from node regions, deferred volume-type selection for remote clusters, and cluster-specific domains in volume responses — by @rguliyev and @djeebus in
1bded44,8858ff6,bb04d1f
Bug Fixes
- Paginate S3 prefix deletions to remove every matching object and reject empty prefixes — by @tomassrnka in
d4fc040 - Abort failed GCS multipart uploads instead of leaving orphaned parts — by @tomassrnka in
9e1caea - Handle compression correctly for V4+ snapshot ancestor gaps — by @arkamar in
f828d12 - Return appropriate volume-operation errors for missing paths, existing files, and non-directory path components — by @djeebus in
ac26e15 - Stop S3FS from caching missing Firecracker, kernel, and envd artifacts — by @tomassrnka in
19ad718
Docker reverse proxy
Compatibility Notes
Database
Features
- Add PostgreSQL session primitives and serializable-transaction retry backoff — by @gm-e2b in
8698a06,1592db2,4f7b8f9 - Add typed project, workspace, and secret identifiers using TypeID encoding — by @tvi and @gm-e2b in
cc5fae8,86652a9,78ab8bb - Support Redis password authentication and explicit TLS enablement — by @michalsuba-e2b in
3fe4961
IaC
Compatibility Notes
- Retire the repository's Nomad-based deployment configuration and associated pipelines; deployment documentation now describes the Kubernetes-based distribution — by @tvi in
8a1c488,e7b3cca
Observability
Improvements
- Add sandbox execution-duration metrics by stop reason, filesystem-only pause labels, and per-step pause latency measurements — by @jakubno and @bchalios in
7852594,4be33ba,f551118 - Add in-flight memfd page counts, synchronous write-protection diagnostics, envd upgrade outcomes, virtio-blk queue notifications, and more attributable NBD-close traces — by @kalyazin and @bchalios in
42b8785,e1ce298,9250203,d7bc4af,33a2656
Bug Fixes
- Stop flushing Firecracker metrics after the VM exits and derive sandbox log identity from runtime metadata — by @tomassrnka and @arkamar in
50c64be,e26e9c1 - Flush pending shared telemetry metrics before shutting down the exporter — by @jakubno in
9a6c71d
Full Changelog:
2026.29...2026.30