Runtime

Runtime changelog, 12 October 2026

What shipped in Runtime Cloud on 12 October 2026: a new look for the console; a scheduled job whose sandbox was deleted before it started runs again; 100 free hours every month; the Blaxel and Daytona drop-ins honour the create options they used to drop; a busy sandbox's refusal keeps its own error; why a secret's placeholder arrived unchanged; javaScript cells with await keep their variables; a paused sandbox that will not wake tells you what to do; clear words for an image limit below the base; know when your usage export is final; compartments; an email when your credit is in; delete sandboxes by label; wallet top-ups say when they are off; storage reaches your usage export an hour sooner; a code for a new account by email; and a paused sandbox tells you how to reach it.

A new look for the console

Usage & billing, Home, Settings, Close account, Sandboxes, Jobs, Secrets, Agents & API keys, Webhooks, Networking and two-step sign-in are rebuilt from one set of pieces: a near-white ground, white cards, pill controls and Inter. Usage & billing leads with the balance and the amounts to add, with auto top-up and the referral as rows, the month beside its products, limits as meters and the statement as a ledger. Home opens with one line, "All healthy." or "One thing needs you."

A scheduled job whose sandbox was deleted before it started runs again

A run whose sandbox was deleted under it stayed "provisioning" for good, and a job runs once at a time, so the job never ran again. The run now ends as unknown (compute_stopped) and the next occurrence runs.

100 free hours every month

Every account's free usage is now told in one figure: 100 free hours a month of a 1 GB machine, which is 100 GiB-hours of memory and 25 vCPU-hours of active CPU (about 25 hours of a 2 vCPU, 4 GB sandbox at half busy). Saved copies (10 GB) and disks (5 GB) are unchanged. It applies to every account. Usage & billing now shows the free hours left this month, with the memory and active CPU behind them, and the guides call it free usage throughout.

The Blaxel and Daytona drop-ins honour the create options they used to drop

In withruntime.blaxel, SandboxInstance.create(config, timeout=N) (1 to 50 seconds, as Blaxel 0.4.13) deletes a sandbox not running in time and raises SandboxCreationTimeoutError, and safe=True checks the new sandbox answers. In withruntime.daytona, create(timeout=...) bounds the create, queue_timeout is how many minutes it waits for room (then DaytonaQueueTimeoutError), pip_install_from_requirements takes pip's index and link options, and kvm, a dockerfile_commands build context and wait_for_resize_complete are refused by name instead of ignored.

A busy sandbox's refusal keeps its own error

When a call waits to retry guest_busy or a full house and its deadline ends the wait, the JavaScript SDK now throws that refusal, as it judged it would, instead of "The call was cancelled or ran past its deadline". Your own cancel still ends the call as a cancel.

Why a secret's placeholder arrived unchanged

The troubleshooting guide now covers a rule's near-miss (/ingest is not /ingest/), paths that read two ways, clients that ignore HTTPS_PROXY, and what the sandbox's own NO_PROXY lists; the security guide links to it.

JavaScript cells with await keep their variables

A const, let, class or function declared in a JavaScript or TypeScript interpreter cell that uses top-level await is there in the next cell, as in every other cell. Before, it ended with its cell and the next one read a is not defined. A cell run again may declare its const and let again, as in a browser console. See code interpreter.

A paused sandbox that will not wake tells you what to do

When autoWake is off, a call to a paused sandbox answers sandbox_paused (409) with "…and autoWake is off, so requests do not wake it: call wake, or update it with autoWake: true." The Go KeepAlive example no longer turns autoWake off, since it is on by default (the API reference).

Clear words for an image limit below the base

A build from Runtime's base (FROM runtime, or a recipe without a base) with a build.maxImageMiB under 3,072 MiB, the base's own size, is now refused when you send it, with the smallest value that works, instead of failing after it was queued.

Know when your usage export is final

Every page of GET /v1/usage/export now carries finalThrough: no row settled before it can still appear or change, so a range ending at or before it is complete for good. Each row also says final: true once its sandbox or volume is deleted and every charge it will ever have is in the export. A volume's backups bill until their retention ends, so they are not final when the volume is. The CSV gains a last column, final. See export settled usage.

Compartments

Wall a group of keys off from the rest of your account: choose One compartment when you make a key at API keys. A key in a compartment sees and uses only the sandboxes, snapshots, images, volumes, previews, ports and jobs its compartment's keys made; everything else answers "not found", and no other key reaches in except an account-wide one. Give one to each customer of your platform, or to an agent whose sandboxes nobody else may touch. Each compartment has its own sandbox names, so every customer can have its own main (compartments).

An email when your credit is in

Each time you buy credit, Runtime emails you once it lands: what you added, the welcome or referral match it earned, and your balance now. An automatic top-up emails everyone on the account who may pay. See pricing.

Delete sandboxes by label

runtime sandboxes rm --label team=search, sandboxes.deleteAll({ labels }) in JavaScript and sandboxes.delete_all(labels=...) in Python delete for good every sandbox with all the labels given, stopped ones too, the way stop by label already stops them. Each returns what it deleted and what failed. In the CLI's and each SDK's next release. See the CLI.

Wallet top-ups say when they are off

POST /api/wallet/topups answers 404 with code not_available while wallet top-ups are switched off, instead of 503, so a client can tell an option not offered from an outage.

Storage reaches your usage export an hour sooner

Each hour of storage (a paused sandbox's memory and disk, a stopped sandbox's disk, images, snapshots, volumes and volume backups) now settles within a minute of its end, usually seconds, instead of 58 minutes after it. Nothing is charged differently. See export settled usage.

A code for a new account by email

Opening an account by email now asks for the six-digit code the email carries, typed on the page where you asked for it, instead of a link click. An address with an account gets one email with its link and a code, so signing in is still one click. Every address sees the same page, "check your email", so the page never says whether an address has an account. New accounts by email are not opened from data-centre or VPN networks, and no email comes: use Google there, or write to support@withruntime.com. An address gets at most five sign-in emails an hour, and ten wrong code tries a day; past that, its email has only the link.

A paused sandbox tells you how to reach it

When a sandbox has paused and its autoWake is off, a request to it now answers 409 sandbox_paused with what to do: call wake, or update the sandbox with autoWake: true. The Go keep-alive example no longer turns autoWake off, so a sandbox copied from it wakes on its next request. See troubleshooting.

100 free hoursin your first 30 days.

of a 1 GB machine

  • No credit card
  • Four sandboxes at once, 2 vCPU and 4 GiB each
  • Then prepaid credit from $10, no plan fee
Start free, no card