What's new in 0.9.1¶
Published on 2026-10-07: Python SDK rayito 0.9.1, TypeScript SDK
rayito 0.9.1 and rayd 0.9.1.
A patch release on top of 0.9.0, with no API or agent changes: it
fixes a bug present since 0.3.0 when creating a sandbox with a short deadline.
rayd only changes its number.
A short timeout without idle no longer fails¶
Up to 0.9.0, Sandbox.create(timeout=120) raised InvalidArgumentException
(InvalidArgumentError in TypeScript) even if you did not pass idle. The
default auto-suspend waits 300 s without traffic, and the SDK checked it
against your timeout as if you had requested it yourself. It happened with
any timeout of 300 s or less, and also with on_timeout and a
max_lifetime of 300 s or less.
Since 0.9.1, if you do not pass idle, the default window adapts to the
deadline:
| Launch | If 300 s do not fit | Result |
|---|---|---|
timeout only |
auto-suspend is disabled | the sandbox ends at its timeout, as in E2B |
on_timeout="kill" |
auto-suspend is disabled | rayd terminates it at its deadline |
on_timeout="pause" |
drops to 60 s (the API minimum) | with no client, it suspends as soon as possible after the deadline |
An idle that you pass yourself is not adapted: Sandbox.create(timeout=120,
idle=IdlePolicy()) is still InvalidArgumentException, because you asked for
a window that does not fit. Details: Pause and
resume.
Measured on real AWS
In the release acceptance, create(timeout=120) without idle from Python
and from TypeScript started in ≈ 7 s, launched the MicroVM without
idlePolicy and with maximumDurationInSeconds 120, and the MicroVM
ended up TERMINATED at ≈ 131 s.
For those who run the e2e¶
The s3-mounts and rayd-otlp e2e tests now document a precondition that
was previously only discovered on failure: rayito stack deploy s3-mounts and
rayito stack deploy otlp-export create the managed policy, but do not attach
it to the execution role. Without it, those cases fail instead of being
skipped. The steps are in CONTRIBUTING.md and in the header of each test.
How to upgrade from 0.9.0¶
Nothing else is required. The compatibility series is still 0.9, so a 0.9.1
SDK works with a rayd 0.9.0 image and vice versa: there is no need to
republish the image.
Full details: Changelog.