From cb83600a40f8aa6dac23da9f5d70f55b0fa0bf43 Mon Sep 17 00:00:00 2001 From: Dallin Romney Date: Tue, 27 Jan 2026 21:45:51 -0800 Subject: [PATCH 1/2] fix: use underlying provider name for stream errors --- gui/src/pages/gui/StreamError.tsx | 2 +- gui/src/util/errorAnalysis.test.ts | 28 ++++++++++++++-------------- gui/src/util/errorAnalysis.ts | 4 ++-- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/gui/src/pages/gui/StreamError.tsx b/gui/src/pages/gui/StreamError.tsx index 7f7c32245..af8267af9 100644 --- a/gui/src/pages/gui/StreamError.tsx +++ b/gui/src/pages/gui/StreamError.tsx @@ -230,7 +230,7 @@ const StreamErrorDialog = ({ error }: StreamErrorProps) => { {selectedModel ? ( {`Provider: `} - {selectedModel.provider} + {selectedModel.underlyingProviderName} ) : null} {/* TODO: status page links for providers? */} diff --git a/gui/src/util/errorAnalysis.test.ts b/gui/src/util/errorAnalysis.test.ts index e7d2b8868..c4c7afab4 100644 --- a/gui/src/util/errorAnalysis.test.ts +++ b/gui/src/util/errorAnalysis.test.ts @@ -228,10 +228,10 @@ describe("errorAnalysis", () => { }); describe("selectedModel handling", () => { - it("should use selectedModel title and provider", () => { + it("should use selectedModel title and underlyingProviderName", () => { const selectedModel = { title: "GPT-4", - provider: "openai", + underlyingProviderName: "openai", }; const error = new Error("Test error"); const result = analyzeError(error, selectedModel); @@ -246,7 +246,7 @@ describe("errorAnalysis", () => { it("should use selectedModel info when no matching provider is found", () => { const selectedModel = { title: "Custom Model", - provider: "unknown-provider", + underlyingProviderName: "unknown-provider", }; const error = new Error("Test error"); const result = analyzeError(error, selectedModel); @@ -258,7 +258,7 @@ describe("errorAnalysis", () => { it("should handle selectedModel with missing title", () => { const selectedModel = { - provider: "openai", + underlyingProviderName: "openai", }; const error = new Error("Test error"); const result = analyzeError(error, selectedModel); @@ -270,7 +270,7 @@ describe("errorAnalysis", () => { ); }); - it("should handle selectedModel with missing provider", () => { + it("should handle selectedModel with missing underlyingProviderName", () => { const selectedModel = { title: "Custom Model", }; @@ -297,7 +297,7 @@ describe("errorAnalysis", () => { it("should match Anthropic provider", () => { const selectedModel = { title: "Claude 3.5 Sonnet", - provider: "anthropic", + underlyingProviderName: "anthropic", }; const error = new Error("Test error"); const result = analyzeError(error, selectedModel); @@ -311,7 +311,7 @@ describe("errorAnalysis", () => { it("should match Groq provider", () => { const selectedModel = { title: "Llama 3.1 70B", - provider: "groq", + underlyingProviderName: "groq", }; const error = new Error("Test error"); const result = analyzeError(error, selectedModel); @@ -323,7 +323,7 @@ describe("errorAnalysis", () => { it("should match provider with no apiKeyUrl", () => { const selectedModel = { title: "Llama 3.1", - provider: "ollama", + underlyingProviderName: "ollama", }; const error = new Error("Test error"); const result = analyzeError(error, selectedModel); @@ -335,7 +335,7 @@ describe("errorAnalysis", () => { it("should be case sensitive for provider matching", () => { const selectedModel = { title: "GPT-4", - provider: "OpenAI", // Different case + underlyingProviderName: "OpenAI", // Different case }; const error = new Error("Test error"); const result = analyzeError(error, selectedModel); @@ -352,7 +352,7 @@ describe("errorAnalysis", () => { ); const selectedModel = { title: "GPT-4", - provider: "openai", + underlyingProviderName: "openai", }; const result = analyzeError(error, selectedModel); @@ -382,7 +382,7 @@ describe("errorAnalysis", () => { ); const selectedModel = { title: "GPT-4", - provider: "openai", + underlyingProviderName: "openai", }; const result = analyzeError(error, selectedModel); @@ -486,7 +486,7 @@ describe("errorAnalysis", () => { ); const selectedModel = { title: "GPT-4", - provider: "openai", + underlyingProviderName: "openai", }; const result = analyzeError(error, selectedModel); @@ -502,7 +502,7 @@ describe("errorAnalysis", () => { ); const selectedModel = { title: "Claude 3.5 Sonnet", - provider: "anthropic", + underlyingProviderName: "anthropic", }; const result = analyzeError(error, selectedModel); @@ -514,7 +514,7 @@ describe("errorAnalysis", () => { const error = new Error("Network request failed"); const selectedModel = { title: "Local Model", - provider: "ollama", + underlyingProviderName: "ollama", }; const result = analyzeError(error, selectedModel); diff --git a/gui/src/util/errorAnalysis.ts b/gui/src/util/errorAnalysis.ts index 82ee8df3a..17a37dca5 100644 --- a/gui/src/util/errorAnalysis.ts +++ b/gui/src/util/errorAnalysis.ts @@ -49,12 +49,12 @@ export function analyzeError( if (selectedModel) { modelTitle = selectedModel.title; - providerName = selectedModel.provider; + providerName = selectedModel.underlyingProviderName; // If there's a matching provider from add model form provider info // We can get more info const foundProvider = Object.values(providers).find( - (p) => p?.provider === selectedModel.provider, + (p) => p?.provider === selectedModel.underlyingProviderName, ); if (foundProvider) { providerName = foundProvider.title; From 0b7fe4813c996aa416843bbda7d1c784b49e65b4 Mon Sep 17 00:00:00 2001 From: Dallin Romney Date: Tue, 27 Jan 2026 21:53:15 -0800 Subject: [PATCH 2/2] fix: also show underlying provider for open github issue --- gui/src/pages/gui/StreamError.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/src/pages/gui/StreamError.tsx b/gui/src/pages/gui/StreamError.tsx index af8267af9..e434ca887 100644 --- a/gui/src/pages/gui/StreamError.tsx +++ b/gui/src/pages/gui/StreamError.tsx @@ -294,7 +294,7 @@ const StreamErrorDialog = ({ error }: StreamErrorProps) => { const issueBody = `**Error Details** Model: ${selectedModel?.title || "Unknown"} -Provider: ${selectedModel?.provider || "Unknown"} +Provider: ${selectedModel ? `${selectedModel.underlyingProviderName}${selectedModel.provider === "continue-proxy" ? " (continue-proxy)" : ""}` : "Unknown"} Status Code: ${statusCode || "N/A"} **Error Output**