BuildNot yet confirmed elsewhere1 publisher2 min readPublished
Modal and Cloudflare sandbox runs come back without the isolation tier their docs describe
plimsoll's docs say E2B, Modal, Daytona, Vercel, Cloudflare and Northflank never report which isolation tier a run got. A dev.to writer verified two of them. The other four rest on plimsoll's reading alone.
The Engineer · Build desk

Cloudflare docs say each instance is a microVM; per the post's author, no run result repeats it. Modal can ask for a full VM, but nothing returned says which of the two served a call. plimsoll puts the tier on every result. Four other services rest on plimsoll's reading alone.
- constraint Cloudflare Docs say each instance is a microVM; per the post's author, no run result repeats it per call, claim 3
- capability Modal experimental_options with vm_runtime True asks for a full VM, not the default gVisor layer, claim 4
- constraint Modal Post's author: nothing in what comes back tells you which of the two served a call, claim 5
- capability plimsoll Tier is a value on every result; ErrInsufficientIsolation if MinimumIsolation can't be met, claim 6
- exposure Four of the six services Not checked by the post's author; rest on plimsoll's reading alone, claim 13
| Who | How | Kind | Claim |
|---|---|---|---|
| Cloudflare | Docs say each instance is a microVM; per the post's author, no run result repeats it per call | constraint | 3 |
| Modal | experimental_options with vm_runtime True asks for a full VM, not the default gVisor layer | capability | 4 |
| Modal | Post's author: nothing in what comes back tells you which of the two served a call | constraint | 5 |
| plimsoll | Tier is a value on every result; ErrInsufficientIsolation if MinimumIsolation can't be met | capability | 6 |
| Four of the six services | Not checked by the post's author; rest on plimsoll's reading alone | exposure | 13 |
What happened
- Cloudflare's docs say "Each instance is a microVM with its own kernel and network, so no other workload shares it," but nothing on a run's result repeats that per call.
- Modal's Sandbox.create accepts experimental_options with vm_runtime set to True to ask for a full VM in place of the default gVisor layer.
- plimsoll ranks tiers process, container, kernel, vm, puts the tier on every result, and returns ErrInsufficientIsolation without running anything if a request's MinimumIsolation cannot be met.
- Each answered plimsoll run also carries SHA-256 digests of the request and result, plus the provider, tier, image identity and timings.
Why it matters
- exposure A team that needs a VM boundary for untrusted agent code can ask for it on Modal and still has no per-call value to log or assert on.
- cost In this comparison the only per-run answer comes from a daemon you operate yourself, so the host work moves onto your team.
- constraint A caller-set floor needs refusals that say whether code ran. Without that, a retry after a refused call can execute the code twice.
The two services the author checked show different gaps. Cloudflare documents a single tier for the whole product, so if that statement is true, the sentence in its docs already covers every run [3]. Modal puts two tiers behind one create call and lets the caller choose with a flag [4]. The author wrote of Modal: "Nothing in what comes back tells you which of the two served a particular call." [5] In our view the per-call value matters most in that second case.
The six-service result is plimsoll's own reading of current documentation in September 2026 [14]. The project making the claim also ships the feature it says is missing [6]. The dev.to author wrote, "I checked two of those myself instead of taking the claim on faith." [2] That leaves E2B, Daytona, Vercel Sandbox and Northflank resting on plimsoll's reading alone [13]. The post does not show a response payload from any of the four, or a case where a provider ran code below the tier requested.
A minimum tier is only useful if a refusal is legible. An InvalidArgument error typically means validation rejected the request, yet a worker can also refuse once its container is already running, and a capacity refusal can come from the daemon's limiter or from the provider [12]. So plimsoll marks refusals raised before dispatch with a reason, and treats an unmarked refusal as "may have executed" [7]. We think that default is right, because a code path that forgot to mark its error then cannot pass for a safe retry.
The mark also depends on the request ID. Every request carries a new 32-hex-digit ID from the client, and the daemon repeats it back [8]. Without the echo, a confused proxy could serve one request's answer for another, and the retry would run the code twice.
The record side is built with the same caution. The daemon holds no signing key, since it runs hostile code and a single engine escape would otherwise put forgery of every record within one key's reach [10]. Signing happens in a separate harness outside the daemon. It recomputes the digests from its own copy and signs only the digests that match. In the cart-pole example, the same run on five providers, four of them different backends, hashed to one value [11].
What to watch
- Whether anyone tests E2B, Daytona, Vercel Sandbox or Northflank responses and finds a tier field, since four of the six rest on plimsoll's reading alone.
- Whether Modal returns the serving tier from Sandbox.create when vm_runtime is requested, or moves that option out of experimental_options.
Clarity's read
What the record supports and how the coverage leans. The claims behind it follow.
Reality
- Evidence45
- Adoption
- Insufficient
- Hype gap+15
- Incentives55
- Confidence50
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
plimsoll is a Go daemon that you run yourself and that executes code an agent wrote.
- [2]
The post's author wrote: "I checked two of those myself instead of taking the claim on faith." The two examined in the post are Cloudflare and Modal.
- [3]
Cloudflare's sandbox docs say: "Each instance is a microVM with its own kernel and network, so no other workload shares it." According to the post's author, nothing on a run's result repeats this per call and there is no per-request floor to set.
- [4]
Modal's Sandbox.create reference takes experimental_options, and passing {"vm_runtime": True} asks for a full virtual machine instead of the default gVisor layer.
ReportedSupportedSource: Modal Sandbox.create reference, per the dev.to post's authorView cited source - [5]
The post's author wrote of Modal: "Nothing in what comes back tells you which of the two served a particular call."
- [6]
plimsoll's tiers are process, container, kernel and vm, weakest first. The tier is a value on every result. A request sets MinimumIsolation, and if the daemon cannot meet it the caller gets ErrInsufficientIsolation and nothing ran.
- [7]
Refusals raised before dispatch are marked with a reason (request, permission, protocol, unsupported, isolation, environment, capacity). A refusal without the mark is treated as "may have executed," so a code path that forgot to mark its error can never be mistaken for a safe retry.
- [8]
The mark only counts if the answer carries the request ID back. Otherwise a confused proxy serving one request's answer for another would make a call that ran look like "nothing ran," and the retry would run it twice. The client sends a fresh 32-hex-digit ID with each request and the daemon echoes it.
- [9]
Every answered run carries SHA-256 digests of the request as sent and the result as returned, plus the provider, the tier, the image identity and the timings.
- [10]
The daemon holds no signing key, on purpose, because it executes hostile code and one engine escape would otherwise be a key away from forging every record. A harness outside the daemon recomputes the digests from its own copy and signs the ones that match.
- [11]
In plimsoll's cart-pole run report, the same run on five different providers, four of them different backends, hashed to the same fingerprint.
- [12]
InvalidArgument is usually a request that failed validation, but a worker can also refuse after its container started. A capacity refusal can come from the daemon's limiter or from the provider.
- [13]
Four of the six services (E2B, Daytona, Vercel Sandbox, Northflank) were not checked by the post's author and rest on plimsoll's reading alone.
- [14]
plimsoll's own docs say they read the current documentation of six hosted sandbox services in September 2026 (E2B, Modal, Daytona, Vercel Sandbox, Cloudflare and Northflank) and found that none returns the wall a run actually got, and none refuses a run that would land below a minimum the caller stated.
ReportedContestedSource: plimsoll documentation, as reported by the dev.to post's authorView cited source
Sources
1 independent publisher whose own reporting we read for this story.
- dev.toSix hosted sandboxes say "isolated." None tells you which wall your agent ran behind
1 article · October 12, 2026
Topics and entities
Follow any of these and your For You feed starts watching them — no settings page required.
Topics
- Code execution isolationFollow
- Code-agent sandboxingFollow