From dabf2777979e89cd5e526979d8f13dd74b625dff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gregor=20=C5=BDuni=C4=8D?= <36313686+gregpr07@users.noreply.github.com> Date: Wed, 28 Oct 2026 23:38:29 +0000 Subject: [PATCH] fix(llm): compact on maximum image errors --- packages/llm/src/provider-error.ts | 1 + packages/llm/test/provider-error.test.ts | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/llm/src/provider-error.ts b/packages/llm/src/provider-error.ts index fb2ec7c4c..efd44eb0f 100644 --- a/packages/llm/src/provider-error.ts +++ b/packages/llm/src/provider-error.ts @@ -30,6 +30,7 @@ const patterns = [ /too many tokens/i, /token limit exceeded/i, /too many images (?:were )?provided/i, + /exceeded maximum number of images \(\d+\) allowed in the request/i, ] const exclusions = [/^(throttling error|service unavailable):/i, /rate limit/i, /too many requests/i] diff --git a/packages/llm/test/provider-error.test.ts b/packages/llm/test/provider-error.test.ts index 265962e72..2896d917b 100644 --- a/packages/llm/test/provider-error.test.ts +++ b/packages/llm/test/provider-error.test.ts @@ -2,7 +2,7 @@ import { describe, expect, test } from "bun:test" import { isContextOverflow } from "../src" describe("provider error classification", () => { - test("classifies provider token limit messages as context overflow", () => { + test("classifies provider token and image limits as context overflow", () => { const messages = [ "tokens in request more than max tokens allowed", '{"error":{"type":"request_too_large","message":"Request exceeds the maximum size"}}', @@ -14,6 +14,7 @@ describe("provider error classification", () => { "Too many tokens", "Token limit exceeded", "Too many images were provided, we currently limit the number of images per conversation to 60", + "Exceeded maximum number of images (50) allowed in the request.", ] expect(messages.every(isContextOverflow)).toBe(true) @@ -23,6 +24,7 @@ describe("provider error classification", () => { const messages = [ "Throttling error: Too many tokens, please wait before trying again.", "Rate limit exceeded, please retry after 30 seconds.", + "Rate limit: Exceeded maximum number of images (50) allowed in the request.", "Too many requests. Please slow down.", ]