diff --git a/packages/opencode/src/session/retry.ts b/packages/opencode/src/session/retry.ts index dddeae1cf3df..a71a6a38241f 100644 --- a/packages/opencode/src/session/retry.ts +++ b/packages/opencode/src/session/retry.ts @@ -89,13 +89,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") || - !!json.error - ) { - return "Provider Server Error" - } + return JSON.stringify(json) } catch { return undefined } diff --git a/packages/opencode/test/session/retry.test.ts b/packages/opencode/test/session/retry.test.ts index 9cfdd7fca539..a483a0152714 100644 --- a/packages/opencode/test/session/retry.test.ts +++ b/packages/opencode/test/session/retry.test.ts @@ -99,7 +99,7 @@ describe("session.retry.retryable", () => { test("handles json messages without code", () => { const error = wrap(JSON.stringify({ error: { message: "no_kv_space" } })) - expect(SessionRetry.retryable(error)).toBe("Provider Server Error") + expect(SessionRetry.retryable(error)).toBe(`{"error":{"message":"no_kv_space"}}`) }) test("does not throw on numeric error codes", () => {