Skip to content

fix(rivetkit): re-push the schedule alarm on every actor start - #5923

Merged
NathanFlurry merged 1 commit into
mainfrom
timer-issue
Oct 27, 2026
Merged

NathanFlurry merged 1 commit into
mainfrom
timer-issue

Conversation

@NathanFlurry

@NathanFlurry NathanFlurry commented Oct 27, 2026 •

Copy link
Copy Markdown
Member
  • Every new actor generation now re-pushes its next schedule alarm on startup, instead of skipping the push when it matches the persisted last_pushed_alarm.
  • Fixes crons and scheduled actions that stop firing for good after a runner drain or generation change. In that case the previous generation's push was acked locally but never reached the engine, and later generations trusted the saved marker.
  • The marker still dedupes repeat pushes within one generation.
  • Updated the startup test to assert the re-push, and updated the internal docs.

@railway-app

railway-app Bot commented Oct 27, 2026

Copy link
Copy Markdown

🚅 Deployed to the rivet-pr-5923 environment in rivet-frontend

8 services not affected by this PR
  • website
  • sentry-tunnel
  • ladle
  • frontend-inspector
  • frontend-cloud-ee
  • kitchen-sink
  • mcp-hub
  • frontend-cloud

@github-actions

Copy link
Copy Markdown
Contributor

📟 Pip-Boy · 37c2aa3

📦 Packages

Skipped: this PR doesn't change any published package.

🧹 Rust dependencies · cargo deny + cargo shear

check new in this PR fixed existing on base
advisories ✅ 0 0 39
licenses ✅ 0 0 0
sources ✅ 0 0 0
bans ✅ 0 0 0
unused ✅ 0 0 292

🦀 Binaries · publish Dockerfiles, --release

Base: main@a7f753c, the newest main commit with native builds before the merge base. Size changes merged to main since then show up here too.

artifact npm @latest base this PR Δ vs base
engine linux-x64-musl 93.9 MB 93.9 MB 93.9 MB 0
rivetkit-napi linux-x64-gnu 44.1 MB 44.1 MB 44.1 MB +128 B (+0.0%)

⏱ Timing

job wall time slowest step
changes 28s checkout · 23s
zizmor 12s checkout · 3s
hygiene 1m12s checkout · 28s
native · rivetkit-napi · linux-x64-gnu 5m45s Build with the publish Dockerfile · 5m29s
native · engine · linux-x64-musl 12m56s Build with the publish Dockerfile · 12m41s
⏭ self-test — skipped
⏭ footprint — skipped
report 23s Write the comment and run summary · 7s
🔭 Full CI trace for this commit

One OpenTelemetry trace of Rust CI, frontend, and Pip-Boy for 37c2aa3: every job and step, with the sizes above attached. Run after CI finishes.

pnpm install --frozen-lockfile --filter 'pipboy...'
pnpm --filter pipboy pipboy trace --sha 37c2aa390b728beb00569ac717b106b6e6fcfb16

Add --otlp <url> to send it to any OTLP/HTTP collector.

Agent instruction: From a rivet-dev/rivet checkout, run the commands above, then read the trace file the last command prints. List the slowest jobs and steps and explain where CI time went.

@NathanFlurry
NathanFlurry marked this pull request as ready for review October 27, 2026 20:58
@NathanFlurry
NathanFlurry merged commit d2abe5d into main Oct 27, 2026
11 of 12 checks passed
@NathanFlurry
NathanFlurry deleted the timer-issue branch October 27, 2026 20:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant