From 5a2539a7bdb9be06ce70f9f7ce02decece89762a Mon Sep 17 00:00:00 2001 From: David Brailovsky Date: Wed, 29 Jul 2026 16:29:37 +0000 Subject: [PATCH] update error messages copy to be more generic --- packages/ai/src/api/anthropic-messages.ts | 2 +- packages/ai/src/api/bedrock-converse-stream.ts | 2 +- packages/ai/src/api/google-generative-ai.ts | 2 +- packages/ai/src/api/google-vertex.ts | 2 +- packages/ai/src/api/mistral-conversations.ts | 4 ++-- packages/ai/test/anthropic-sse-parsing.test.ts | 2 +- packages/ai/test/bedrock-raw-stop-reason.test.ts | 2 +- packages/ai/test/google-raw-stop-reason.test.ts | 4 ++-- packages/ai/test/mistral-raw-stop-reason.test.ts | 4 ++-- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/ai/src/api/anthropic-messages.ts b/packages/ai/src/api/anthropic-messages.ts index f3fe3633e..713d273c4 100644 --- a/packages/ai/src/api/anthropic-messages.ts +++ b/packages/ai/src/api/anthropic-messages.ts @@ -1343,7 +1343,7 @@ function mapStopReason( case "stop_sequence": return { stopReason: "stop" }; // We don't supply stop sequences, so this should never happen case "sensitive": // Content flagged by safety filters (not yet in SDK types) - return { stopReason: "error", errorMessage: "Anthropic stop_reason: sensitive" }; + return { stopReason: "error", errorMessage: "Provider stopped with: sensitive" }; default: // Handle unknown stop reasons gracefully (API may add new values) throw new Error(`Unhandled stop reason: ${reason}`); diff --git a/packages/ai/src/api/bedrock-converse-stream.ts b/packages/ai/src/api/bedrock-converse-stream.ts index 0345004b5..6b767f48d 100644 --- a/packages/ai/src/api/bedrock-converse-stream.ts +++ b/packages/ai/src/api/bedrock-converse-stream.ts @@ -971,7 +971,7 @@ function mapStopReason(reason: string | undefined): { stopReason: StopReason; er return { stopReason: "toolUse" }; default: return reason - ? { stopReason: "error", errorMessage: `Bedrock stopped with: ${reason}` } + ? { stopReason: "error", errorMessage: `Provider stopped with: ${reason}` } : { stopReason: "error" }; } } diff --git a/packages/ai/src/api/google-generative-ai.ts b/packages/ai/src/api/google-generative-ai.ts index ceed2f347..2e2b1784a 100644 --- a/packages/ai/src/api/google-generative-ai.ts +++ b/packages/ai/src/api/google-generative-ai.ts @@ -268,7 +268,7 @@ export const stream: StreamFunction<"google-generative-ai", GoogleOptions> = ( } if (output.stopReason === "aborted" || output.stopReason === "error") { const errorMessage = output.rawStopReason - ? `Gemini stopped with ${output.rawStopReason}` + ? `Provider stopped with: ${output.rawStopReason}` : "An unknown error occurred"; throw new Error(errorMessage); } diff --git a/packages/ai/src/api/google-vertex.ts b/packages/ai/src/api/google-vertex.ts index 864ffe2c6..7baa872d1 100644 --- a/packages/ai/src/api/google-vertex.ts +++ b/packages/ai/src/api/google-vertex.ts @@ -285,7 +285,7 @@ export const stream: StreamFunction<"google-vertex", GoogleVertexOptions> = ( } if (output.stopReason === "aborted" || output.stopReason === "error") { const errorMessage = output.rawStopReason - ? `Gemini stopped with ${output.rawStopReason}` + ? `Provider stopped with: ${output.rawStopReason}` : "An unknown error occurred"; throw new Error(errorMessage); } diff --git a/packages/ai/src/api/mistral-conversations.ts b/packages/ai/src/api/mistral-conversations.ts index fbc51047a..9bbb96b79 100644 --- a/packages/ai/src/api/mistral-conversations.ts +++ b/packages/ai/src/api/mistral-conversations.ts @@ -670,8 +670,8 @@ function mapChatStopReason(reason: string | null): { stopReason: StopReason; err case "tool_calls": return { stopReason: "toolUse" }; case "error": - return { stopReason: "error", errorMessage: "Mistral stopped with: error" }; + return { stopReason: "error", errorMessage: "Provider stopped with: error" }; default: - return { stopReason: "error", errorMessage: `Mistral stopped with: ${reason}` }; + return { stopReason: "error", errorMessage: `Provider stopped with: ${reason}` }; } } diff --git a/packages/ai/test/anthropic-sse-parsing.test.ts b/packages/ai/test/anthropic-sse-parsing.test.ts index 34e3e50d7..dda6c5a07 100644 --- a/packages/ai/test/anthropic-sse-parsing.test.ts +++ b/packages/ai/test/anthropic-sse-parsing.test.ts @@ -272,7 +272,7 @@ describe("Anthropic raw SSE parsing", () => { expect(result.stopReason).toBe("error"); expect(result.rawStopReason).toBe("sensitive"); - expect(result.errorMessage).toBe("Anthropic stop_reason: sensitive"); + expect(result.errorMessage).toBe("Provider stopped with: sensitive"); }); it("treats message_delta without usage as a no-op for usage accumulation", async () => { diff --git a/packages/ai/test/bedrock-raw-stop-reason.test.ts b/packages/ai/test/bedrock-raw-stop-reason.test.ts index 9a36d83dc..128db0498 100644 --- a/packages/ai/test/bedrock-raw-stop-reason.test.ts +++ b/packages/ai/test/bedrock-raw-stop-reason.test.ts @@ -77,6 +77,6 @@ describe("Bedrock raw stop reasons", () => { expect(message.stopReason).toBe("error"); expect(message.rawStopReason).toBe("guardrail_intervened"); - expect(message.errorMessage).toBe("Bedrock stopped with: guardrail_intervened"); + expect(message.errorMessage).toBe("Provider stopped with: guardrail_intervened"); }); }); diff --git a/packages/ai/test/google-raw-stop-reason.test.ts b/packages/ai/test/google-raw-stop-reason.test.ts index 005d389e6..b485088ea 100644 --- a/packages/ai/test/google-raw-stop-reason.test.ts +++ b/packages/ai/test/google-raw-stop-reason.test.ts @@ -86,7 +86,7 @@ describe("Google raw stop reasons", () => { expect(message.stopReason).toBe("error"); expect(message.rawStopReason).toBe("MALFORMED_FUNCTION_CALL"); - expect(message.errorMessage).toBe("Gemini stopped with MALFORMED_FUNCTION_CALL"); + expect(message.errorMessage).toBe("Provider stopped with: MALFORMED_FUNCTION_CALL"); }); it("preserves raw Gemini finish reasons for Google Vertex errors", async () => { @@ -101,6 +101,6 @@ describe("Google raw stop reasons", () => { expect(message.stopReason).toBe("error"); expect(message.rawStopReason).toBe("SAFETY"); - expect(message.errorMessage).toBe("Gemini stopped with SAFETY"); + expect(message.errorMessage).toBe("Provider stopped with: SAFETY"); }); }); diff --git a/packages/ai/test/mistral-raw-stop-reason.test.ts b/packages/ai/test/mistral-raw-stop-reason.test.ts index 0e7ae5e52..782e057a2 100644 --- a/packages/ai/test/mistral-raw-stop-reason.test.ts +++ b/packages/ai/test/mistral-raw-stop-reason.test.ts @@ -62,7 +62,7 @@ describe("Mistral raw stop reasons", () => { expect(message.stopReason).toBe("error"); expect(message.rawStopReason).toBe("error"); - expect(message.errorMessage).toBe("Mistral stopped with: error"); + expect(message.errorMessage).toBe("Provider stopped with: error"); }); it("treats unknown Mistral finish reasons as provider error stops", async () => { @@ -72,6 +72,6 @@ describe("Mistral raw stop reasons", () => { expect(message.stopReason).toBe("error"); expect(message.rawStopReason).toBe("unmapped_error"); - expect(message.errorMessage).toBe("Mistral stopped with: unmapped_error"); + expect(message.errorMessage).toBe("Provider stopped with: unmapped_error"); }); });