Managed Compute: region limits and idle worker billing with minScale 0
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Active
- Tech stack
- rust
- Domain
- backend-api-design, cloud, infrastructure
Research direction
Start with the runner-config upsert implementation at engine/packages/pegboard/src/ops/runner_config/upsert.rs and compare its omitted-value default with the workers and pool configuration documentation. Then trace the managed-pool API behavior for region placement, worker limits, idle retention, resource validation, and runner-config access. Done means the supported controls and defaults are established and the report's separate questions have clear answers or scoped follow-up work.
Written by the indexing model from the issue text.
Description
We are testing agentOS with RivetKit 2.3.17 on managed Rivet Compute with minScale: 0,
maxScale: 1, 1 vCPU and 2 GiB. Actor idle timeout is ten seconds. There are
no customer workloads in these experiments.
Two deployments started the application in Europe, US East, US West and
Singapore. Our actor inventory had instances only in Europe and US East.
Project compute telemetry reached about 240 active instance-seconds per minute
at a weighted 1 vCPU / 2 GiB, consistent with four allocated workers.
After a controlled two-turn test, all actors were sleeping. The final receipt
read completed and the guest disposal hook reported zero active turns and
processes. Compute telemetry continued reporting allocation for approximately
fifteen minutes before explicit zero. Shortening the actor's shutdown grace
from fifteen minutes to thirty seconds did not shorten that allocation tail.
We are not attributing the host retention to the separate native VM teardown
warning: synchronized causality has not been established.
The managed-pool API exposes resources and runner draining, but we could not
find supported region or worker idle-retention settings. The dashboard hides
the lower-level provider editor for managed pools. We have not changed the
generated runner datacenter map.
A separate resource-update/rollback observation on October 5, 2026 used a fixed
window starting at 10:45 UTC. At 11:27 UTC, the latest available telemetry ended
at 11:15 UTC and showed explicit zero allocation from 11:10:57 onward. The
window's reported allocation cost was approximately $0.137, calculated from
the published CPU/memory rates. This includes the failed resource update and
rollback, without inference. It is consistent with four retained workers for
about fifteen minutes, but is not an exact attribution of all monthly spend.
Telemetry was delayed; we do not present the last sample as current live state.
The workers documentation describes a
10-second default serverless drain grace, while the
pool configuration reference
lists 1,800 seconds. The public runner-config upsert implementation also
mentions an omitted-value default of 1,800 seconds. Our managed pool returns
runnerConfig: null, so we cannot establish its effective drain value from
that response. Attempts to read /runner-configs with existing connection
credentials returned HTTP 403. We have not bypassed managed configuration.
Questions:
- Is four-region startup on each managed deployment expected, and is there a
supported way to deploy only to the regions containing our actors? - Is
maxScaleper region? How can a small staging project enforce an overall
worker cap without stranding actors already placed in two regions? - What controls the roughly fifteen-minute allocation after actors sleep,
and can that retention be shortened safely for agentOS? - Can the managed API validate CPU/memory combinations before accepting an
update? A 0.5 CPU / 2 GiB update was accepted then failed during deployment
because that CPU permits at most 1 GiB. We restored the 1 CPU / 2 GiB baseline. - Which documented drain default applies to managed Compute, and what is the
supported API and permission scope for reading its effective runner config?
Is runner draining related to worker idle retention, or are these separate
controls?
At the published rates, four workers retained for fifteen minutes cost about
$0.14 per rollout. We want to keep hosted Rivet and durable actors while making
short staging sessions economical. We can provide bounded, redacted telemetry
for these experiments. This report intentionally omits tokens, actor keys,
user identities, transcripts, project files and service URLs.
Other references:
- Dominant language
- Rust
- Stars
- 6.3k
- Forks
- 279
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 50
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from rivet-dev/rivet
-
Rust client drops connection-level errors when actionId is null (JSON/CBOR)Possibly taken @DibbayajyotiRoy claimed this 14 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
rivet-dev/rivet#5819 · 1 comment ·
Maintainers usually reply within 1 day
-
Queue docs say completable messages are removed on receive, but they stay stored until complete()Possibly taken @Saisharathchandranandnetha claimed this 25 days ago. Open
Difficulty 1/5 1-3 hours Newbie friendliness 91/100
rivet-dev/rivet#5762 · 1 comment ·
Maintainers usually reply within 1 day
-
Serverless listener forwards /start to the application when basePath is "/"Possibly taken @Saisharathchandranandnetha claimed this 28 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
rivet-dev/rivet#5755 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 22/100
rivet-dev/rivet#5881 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
rivet-dev/rivet#5850 · 2 comments ·
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
pop-os/cosmic-comp#2956 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
area:release criticality:p3 documentation
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
registrystack/registry-stack#2085 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
libp2p/rust-libp2p#6694 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
EmbarkStudios/cargo-deny#910 ·