fix(reply): reset sessions after all-model timeout failures#485
Open
BingqingLyu wants to merge 2 commits into
Open
fix(reply): reset sessions after all-model timeout failures#485BingqingLyu wants to merge 2 commits into
BingqingLyu wants to merge 2 commits into
Conversation
…P errors Address review feedback from automated reviewers: - Skip session reset on heartbeat turns — background pings should not discard conversation history (isHeartbeat guard). - Let transient HTTP errors (502/504/521) retry before considering a session reset — move the timeout check after the retry block and add !isTransientHttp guard to avoid consuming retryable errors. - Add test: heartbeat timeout does not reset session. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
When every model in the fallback chain times out,
runReplyAgentcurrently leaves the conversation on the same session and returns a generic failure. The next user message then retries the same bloated or stuck session and can keep looping indefinitely.Fixes openclaw#20910.
What this changes
Why here
runReplyAgentalready auto-recovers from compaction failures and role-order corruption by rotating the session. Timeout-driven session death spirals are the same class of failure: retrying on the same session is usually the wrong thing to do.Testing