From ef8806e5e1a280d56e18da35c4def1c1a8570629 Mon Sep 17 00:00:00 2001 From: sellerscrisp Date: Sun, 14 Dec 2025 10:53:50 -0500 Subject: [PATCH 1/3] feat: add server_error, rate_limit, and no_kv_space retry logic --- packages/opencode/src/session/retry.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/opencode/src/session/retry.ts b/packages/opencode/src/session/retry.ts index 3cabacdb87b9..78d67c0dcbb7 100644 --- a/packages/opencode/src/session/retry.ts +++ b/packages/opencode/src/session/retry.ts @@ -68,6 +68,15 @@ export namespace SessionRetry { if (json.code === "Some resource has been exhausted") { return "Provider is overloaded" } + if (json.type === "error" && json.error?.code?.includes("rate_limit")) { + return "Rate Limited" + } + if (json.error?.message?.includes("no_kv_space")) { + return "KV Cache Full" + } + if (json.type === "error" && json.error?.type === "server_error") { + return "Server Error" + } } catch {} } From 4bb07438e18a2e48601755559122b0ce47862298 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Sun, 14 Dec 2025 11:40:37 -0600 Subject: [PATCH 2/3] Refactor error handling for rate limits and server errors --- packages/opencode/src/session/retry.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/opencode/src/session/retry.ts b/packages/opencode/src/session/retry.ts index 78d67c0dcbb7..680fbd471148 100644 --- a/packages/opencode/src/session/retry.ts +++ b/packages/opencode/src/session/retry.ts @@ -71,11 +71,8 @@ export namespace SessionRetry { if (json.type === "error" && json.error?.code?.includes("rate_limit")) { return "Rate Limited" } - if (json.error?.message?.includes("no_kv_space")) { - return "KV Cache Full" - } - if (json.type === "error" && json.error?.type === "server_error") { - return "Server Error" + if (json.error?.message?.includes("no_kv_space") || (json.type === "error" && json.error?.type === "server_error") { + return "Provider Server Error" } } catch {} } From 99ea421586a08e69f18721e258c261afde033b36 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Sun, 14 Dec 2025 11:46:07 -0600 Subject: [PATCH 3/3] Fix syntax error in error handling condition --- packages/opencode/src/session/retry.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/opencode/src/session/retry.ts b/packages/opencode/src/session/retry.ts index 680fbd471148..c53bb926a8c6 100644 --- a/packages/opencode/src/session/retry.ts +++ b/packages/opencode/src/session/retry.ts @@ -71,7 +71,7 @@ export namespace SessionRetry { if (json.type === "error" && json.error?.code?.includes("rate_limit")) { return "Rate Limited" } - if (json.error?.message?.includes("no_kv_space") || (json.type === "error" && json.error?.type === "server_error") { + if (json.error?.message?.includes("no_kv_space") || (json.type === "error" && json.error?.type === "server_error")) { return "Provider Server Error" } } catch {}