Skip to content

feat(frontend): ping actor if its in the crash loop#4448

Open
jog1t wants to merge 1 commit into03-17-fix_engine_use_proper_paths_for_settingsfrom
03-17-feat_frontend_ping_actor_if_its_in_the_crash_loop
Open

feat(frontend): ping actor if its in the crash loop#4448
jog1t wants to merge 1 commit into03-17-fix_engine_use_proper_paths_for_settingsfrom
03-17-feat_frontend_ping_actor_if_its_in_the_crash_loop

Conversation

@jog1t
Copy link
Contributor

@jog1t jog1t commented Mar 17, 2026

Description

Added support for crash-loop actor status in the guard connectable inspector. This change introduces a new CrashLoopActor component that displays an error state with an exclamation triangle icon, informative messaging about retry behavior, and a "Ping Actor now" button when the actor is not scheduled for future retry. The component fetches additional status information and provides manual intervention capabilities for actors stuck in crash loops.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

Please describe the tests that you ran to verify your changes.

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

@railway-app
Copy link

railway-app bot commented Mar 17, 2026

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

Service Status Web Updated (UTC)
frontend-cloud 😴 Sleeping (View Logs) Web Mar 17, 2026 at 9:37 pm
frontend-inspector 😴 Sleeping (View Logs) Web Mar 17, 2026 at 9:34 pm
mcp-hub ✅ Success (View Logs) Web Mar 17, 2026 at 9:28 pm
website ❌ Build Failed (View Logs) Web Mar 17, 2026 at 9:28 pm
ladle ❌ Build Failed (View Logs) Web Mar 17, 2026 at 9:27 pm

Copy link
Contributor Author

jog1t commented Mar 17, 2026

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@claude
Copy link

claude bot commented Mar 17, 2026

Updated review (previous feedback partially addressed)

Addressed since last review

  • Button label changed from "Ping Actor now" to "Wake up Actor", consistent with the sleeping-actor button
  • Wake button added to the crashed branch in UnavailableInfo

Remaining issues

1. Redundant query for rescheduleTs

CrashLoopActor issues its own useQuery call for actorStatusAdditionalInfoQueryOptions (with refetchInterval: 5_000) and then renders <QueriedActorStatusAdditionalInfo /> which issues the same query again. TanStack Query deduplicates the network request, but the refetchInterval option is set on only one of the observers, so the polling behaviour of the two observers can diverge. A simpler approach is to remove the outer useQuery and instead expose rescheduleTs from inside a shared hook or derive it from the same query result that QueriedActorStatusAdditionalInfo already fetches.

2. Button hidden without explanation when retry is already scheduled

When rescheduleInFuture is true, the wake button is omitted entirely. A user who lands on this screen while a retry is pending has no visual indication that the actor will retry automatically and no way to understand why the action is absent. Consider rendering a disabled button (or an inline note like "Retry scheduled in X") so the user has context. QueriedActorStatusAdditionalInfo already shows the retry time, so the message can be brief.

3. Missing crash error in CrashLoopActor

The crashed branch in UnavailableInfo renders <QueriedActorError /> to help the user understand why the actor failed. CrashLoopActor only renders <QueriedActorStatusAdditionalInfo />, which shows the next retry time but not the crash error. Adding <QueriedActorError actorId={actorId} /> would give users the same diagnostic information for crash-loop actors as they get for plain-crashed actors.


Minor

  • PR description checklist is still entirely unchecked (test plan, self-review items).
  • No automated tests for the new crash-loop UI branch.

@pkg-pr-new
Copy link

pkg-pr-new bot commented Mar 17, 2026

More templates

@rivetkit/cloudflare-workers

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/cloudflare-workers@4448

@rivetkit/framework-base

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/framework-base@4448

@rivetkit/next-js

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/next-js@4448

@rivetkit/react

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/react@4448

rivetkit

pnpm add https://pkg.pr.new/rivet-dev/rivet/rivetkit@4448

@rivetkit/sql-loader

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/sql-loader@4448

@rivetkit/sqlite-vfs

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/sqlite-vfs@4448

@rivetkit/traces

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/traces@4448

@rivetkit/workflow-engine

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/workflow-engine@4448

@rivetkit/virtual-websocket

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/virtual-websocket@4448

@rivetkit/engine-runner

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/engine-runner@4448

@rivetkit/engine-runner-protocol

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/engine-runner-protocol@4448

commit: 0638a17

@jog1t jog1t self-assigned this Mar 17, 2026
@jog1t jog1t requested a review from MasterPtato March 17, 2026 21:29
@jog1t jog1t marked this pull request as ready for review March 17, 2026 21:29
Copy link
Contributor

@MasterPtato MasterPtato left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change "ping actor now" to "wake" (same as when its sleeping)

Also change .with("crashed" branch to have a wake button as well

@jog1t jog1t force-pushed the 03-17-feat_frontend_ping_actor_if_its_in_the_crash_loop branch from f893284 to 0638a17 Compare March 18, 2026 21:19
@jog1t jog1t requested a review from MasterPtato March 18, 2026 21:21
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.

2 participants