Merge pull request #9963 from continuedev/dallin/error-messages

fix: use underlying provider name for stream errors
This commit is contained in:
Nate Sesti
2026-01-30 14:30:02 -08:00
committed by GitHub
3 changed files with 18 additions and 18 deletions

View File

@@ -230,7 +230,7 @@ const StreamErrorDialog = ({ error }: StreamErrorProps) => {
{selectedModel ? (
<span>
{`Provider: `}
<code>{selectedModel.provider}</code>
<code>{selectedModel.underlyingProviderName}</code>
</span>
) : null}
{/* TODO: status page links for providers? */}
@@ -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**

View File

@@ -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);

View File

@@ -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;