RivetKit action can hit closed SQLite coordinator immediately after local engine restart
@NathanFlurry is already working on this.
Since Aug 13, 2026.
- Dominant language
- Rust
- Stars
- 6.1k
- Forks
- 250
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 96
Description
Description
With RivetKit 2.3.10 and the bundled rivet-engine 2.3.10, an actor action invoked immediately after restarting the local engine/registry failed once with SQLite transaction coordinator is closed. Retrying the same action after a short delay succeeded. The engine log suggested this happened while the actor generation was syncing.
Environment
- RivetKit: 2.3.10
- rivet-engine: 2.3.10 from
@rivetkit/engine-cli - Runtime: Bun 1.3.14
- Platform: macOS arm64
- Actor database: embedded SQLite via
rivetkit/db/drizzle
Reproduction sequence
- Start a local registry with
registry.start()and let RivetKit spawn/reuse the local engine. - Create an actor and call an action that reads its embedded SQLite database.
- Stop the Bun registry process and restart the local engine/registry.
- Immediately call the same actor action from a separate client process.
- The first call can fail with
SQLite transaction coordinator is closed; a short delayed retry succeeds.
I have only observed this once so far, so the timing window is transient rather than a deterministic reproduction.
Workaround
A client-side retry limited to this exact error, with short bounded backoff (100/250/500 ms), handles the observed failure.
Is this a known actor-generation synchronization race, and is there a readiness signal or more specific structured error code clients should use instead of matching the message?
Contributor guide
No contributing guide indexed for this repository
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.
Assessment
This issue has not been assessed yet.