Skip to content

fix(rivetkit): retry connection when getParams throws#4823

Draft
NathanFlurry wants to merge 1 commit intomainfrom
driver-tests-fixes/get-params-failed-retry
Draft

fix(rivetkit): retry connection when getParams throws#4823
NathanFlurry wants to merge 1 commit intomainfrom
driver-tests-fixes/get-params-failed-retry

Conversation

@NathanFlurry
Copy link
Copy Markdown
Member

@NathanFlurry NathanFlurry commented Apr 28, 2026

Stack Context

This stack collects fixes uncovered by methodically running the RivetKit driver test suite (/driver-test-runner) one file group at a time. Each PR addresses a single failing test with a narrow root-cause fix.

Why?

The original getParams PR (#4473) promised:

Errors from getParams are surfaced as ActorError with code get_params_failed and allow the connection to retry.

The retry classifier added later in 41c83ab (fix(rivetkit): add lifecycle error retry and gateway HTTP routing) wraps any error not recognized by classifyActorError in pRetry's AbortError, halting retries. client/get_params_failed was never added to the classifier, silently breaking that contract.

This adds the missing classifier arm so the connection-open path retries when getParams() throws (e.g. a transient JWT refresh failure), restoring the documented behavior.

Test impact

Restores the previously failing driver test:

tests/driver/actor-conn.test.ts > Actor Connection Tests > Connection Parameters
  > should surface getParams errors and retry connection setup

The test has been broken on main since 41c83ab (~2 weeks).

The retry classifier added in 41c83ab wraps unclassified errors in
pRetry's AbortError, which silently broke the contract from the original
getParams PR (#4473) that promised "errors from getParams allow the
connection to retry." Adding client/get_params_failed to
classifyActorError as reconnect_only restores that retry behavior so
e.g. a JWT refresh that fails once will be retried on the next
connection attempt.

This restores the actor-conn test "should surface getParams errors and
retry connection setup," which has been broken on main since 41c83ab.
@railway-app
Copy link
Copy Markdown

railway-app Bot commented Apr 28, 2026

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

Service Status Web Updated (UTC)
frontend-cloud 😴 Sleeping (View Logs) Web Apr 28, 2026 at 10:09 am
website 😴 Sleeping (View Logs) Web Apr 28, 2026 at 3:14 am
ladle ✅ Success (View Logs) Web Apr 28, 2026 at 3:04 am
frontend-inspector ❌ Build Failed (View Logs) Web Apr 28, 2026 at 3:03 am
mcp-hub ✅ Success (View Logs) Web Apr 28, 2026 at 3:03 am
kitchen-sink ❌ Build Failed (View Logs) Web Apr 28, 2026 at 3:03 am

@github-actions
Copy link
Copy Markdown
Contributor

Preview packages published to npm

Install with:

npm install rivetkit@pr-4823

All packages published as 0.0.0-pr.4823.494dbbe with tag pr-4823.

Engine binary is shipped via @rivetkit/engine-cli on linux-x64-musl, linux-arm64-musl, darwin-x64, and darwin-arm64. Windows users should use the release installer or set RIVET_ENGINE_BINARY.

Docker images:

docker pull rivetdev/engine:slim-494dbbe
docker pull rivetdev/engine:full-494dbbe
Individual packages
npm install rivetkit@pr-4823
npm install @rivetkit/react@pr-4823
npm install @rivetkit/rivetkit-napi@pr-4823
npm install @rivetkit/workflow-engine@pr-4823

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