mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 15:40:44 +00:00
fix: classify "No conversation found" as session_expired (#65028)
Merged via squash.
Prepared head SHA: f429ba2de0
Co-authored-by: Ivan-Fn <1247214+Ivan-Fn@users.noreply.github.com>
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com>
Reviewed-by: @altaywtf
This commit is contained in:
@@ -45,6 +45,7 @@ Docs: https://docs.openclaw.ai
|
||||
- Audio/self-hosted STT: restore `models.providers.*.request.allowPrivateNetwork` for audio transcription so private or LAN speech-to-text endpoints stop tripping SSRF blocks after the v2026.4.14 regression. (#66692) Thanks @jhsmith409.
|
||||
- QQBot/cron: guard against undefined `event.content` in `parseFaceTags` and `filterInternalMarkers` so cron-triggered agent turns with no content payload no longer crash with `TypeError: Cannot read properties of undefined (reading 'startsWith')`. (#66302) Thanks @xinmotlanthua.
|
||||
- CLI/plugins: stop `--dangerously-force-unsafe-install` plugin installs from falling back to hook-pack installs after security scan failures, while still preserving non-security fallback behavior for real hook packs. (#58909) Thanks @hxy91819.
|
||||
- Claude CLI/sessions: classify `No conversation found with session ID` as `session_expired` so expired CLI-backed conversations clear the stale binding and recover on the next turn. (#65028) thanks @Ivan-Fn.
|
||||
|
||||
## 2026.4.14
|
||||
|
||||
|
||||
@@ -648,6 +648,12 @@ describe("classifyFailoverReason", () => {
|
||||
expect(classifyFailoverReason("410 conversation expired")).toBe("session_expired");
|
||||
});
|
||||
|
||||
it("classifies 'No conversation found' from Claude CLI as session_expired", () => {
|
||||
expect(classifyFailoverReason("No conversation found with session ID: abc123")).toBe(
|
||||
"session_expired",
|
||||
);
|
||||
});
|
||||
|
||||
it("keeps explicit billing and auth signals on 410 text", () => {
|
||||
expect(classifyFailoverReason("HTTP 410: invalid_api_key")).toBe("auth");
|
||||
expect(classifyFailoverReason("HTTP 410: authentication failed")).toBe("auth");
|
||||
|
||||
@@ -1109,6 +1109,7 @@ function isCliSessionExpiredErrorMessage(raw: string): boolean {
|
||||
lower.includes("session expired") ||
|
||||
lower.includes("session invalid") ||
|
||||
lower.includes("conversation not found") ||
|
||||
lower.includes("no conversation found") ||
|
||||
lower.includes("conversation does not exist") ||
|
||||
lower.includes("conversation expired") ||
|
||||
lower.includes("conversation invalid") ||
|
||||
|
||||
Reference in New Issue
Block a user