Skip to main content
Pausing a runtime snapshots its memory to disk and shuts the virtual machine process down, so the host reclaims the guest’s RAM. Resuming relaunches the machine and loads that memory image back. This is not a stop and re-create. The runtime comes back as the exact same machine: every process is still running, every open file is still open, every variable in a REPL still holds its value, and the runtime keeps its IP address, hostname and disk. Use it when an agent session goes idle. A paused runtime holds no host memory and stops consuming CPU and RAM quota, but keeps its full state ready to continue.

Pause

POST /v1/agents/runtime/{runtime_id}/pause
Pausing is idempotent: pausing an already paused runtime succeeds and does nothing.

Resume

POST /v1/agents/runtime/{runtime_id}/resume

What is preserved

What changes

  • In-flight network connections are lost. A TCP connection that was open across the pause will not survive; the peer sees it drop. Have long lived clients reconnect.
  • The guest clock is corrected on resume. The guest wakes believing it is still the instant it was paused, so the platform steps CLOCK_REALTIME forward before the runtime serves traffic. Wall clock reads are correct after resume, but a monotonic timer started before the pause does not count the paused interval.
  • Timers and scheduled work fire late. A sleep or cron job that should have fired during the pause fires shortly after resume instead.

Resource accounting

Because resuming re-acquires CPU and RAM quota, a resume can be rejected if your account has since allocated that capacity elsewhere. It is also rejected if the wallet balance is insufficient. Handle both when resuming after a long idle period.

Timing

Pause has to write the guest’s memory to disk, so it takes longer for runtimes with a large working set. Resume loads pages back on demand rather than all at once, so the runtime becomes responsive quickly and host memory grows back only as the guest touches it.
Pause is for idle sessions you intend to continue on the same runtime. To save a named checkpoint and start new runtimes from it, use snapshots. To discard a runtime entirely, use terminate, which releases disk as well.