You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ateapi crashes actors when atelet rejects a stale snapshot generation #2808
atelet's Checkpoint and PromoteSnapshot return FailedPrecondition when the requested snapshot generation is older than the actor's newest snapshot on the node (or matches it under a different snapshot UUID).
In ateapi, Checkpoint and PromoteSnapshot errors go through handleAteletError (cmd/ateapi/internal/controlapi/workflow_suspend.go), which crashes the actor via ateletErrorCrashesActor (cmd/ateapi/internal/controlapi/crash.go) on every gRPC status code except Unavailable, Canceled, and DeadlineExceeded.
A stale-generation FailedPrecondition only means ateapi's view of the actor's snapshot state is behind atelet's (for example, a late retry of generation N after generation N+1 already committed on atelet), not that the actor itself failed. ateapi should handle that stale-generation rejection without crashing the actor.
I'll take this on. I plan to return Aborted for stale snapshot generations and same-generation UUID conflicts, and have ateapi report the conflict without crashing the actor. Other FailedPrecondition errors will retain their current handling; I'll add regression tests for error propagation and preserved actor/snapshot state.
Activity
cloudonly commentedon Oct 18, 2026
I'll take this on. I plan to return
Abortedfor stale snapshot generations and same-generation UUID conflicts, and have ateapi report the conflict without crashing the actor. OtherFailedPreconditionerrors will retain their current handling; I'll add regression tests for error propagation and preserved actor/snapshot state.Preserve actors when stale snapshot requests are rejected (agent-subs…