Skip to content

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

How we use AISend a correction

Illustration accompanying Modal and Cloudflare sandbox runs come back without the isolation tier their docs describe
Generated illustration
Author finds no per-run tier on Modal, Cloudflare What each sandbox service tells a caller about a run's isolation. The story's only figures are a date and an ID length, so no number chart fits.

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.

Author finds no per-run tier on Modal, Cloudflare
WhoHowKindClaim
CloudflareDocs say each instance is a microVM; per the post's author, no run result repeats it per callconstraint3
Modalexperimental_options with vm_runtime True asks for a full VM, not the default gVisor layercapability4
ModalPost's author: nothing in what comes back tells you which of the two served a callconstraint5
plimsollTier is a value on every result; ErrInsufficientIsolation if MinimumIsolation can't be metcapability6
Four of the six servicesNot checked by the post's author; rest on plimsoll's reading aloneexposure13

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
Why these scores

Claim ledger

Ranked by verification strength, evidence, and original report placement.

  1. [1]

    plimsoll is a Go daemon that you run yourself and that executes code an agent wrote.

    ReportedSupportedView cited source
  2. [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.

    ReportedSupportedSource: dev.to post authorView cited source
  3. [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.

    ReportedSupportedSource: Cloudflare sandbox docs, per the dev.to post's authorView cited source

Sources

1 independent publisher whose own reporting we read for this story.

  1. dev.to

    1 article · October 12, 2026

    Six hosted sandboxes say "isolated." None tells you which wall your agent ran behind

Share your take

Let Clarity write the post for you.

Signed-in readers get a short post drafted on this story in the register they choose — narrative, analytical, or a direct position — editable to the last word before it goes anywhere. The share buttons at the top of this story work without an account.

Topics and entities

Follow any of these and your For You feed starts watching them — no settings page required.

Topics

Loading related stories