fix: Add error handling and display for podcast workflow failures

- Improve error message handling for common API failures
- Add announcementSeverity state for error/success styling
- Display errors with red alert styling in podcast dashboard
This commit is contained in:
ajaysi
2026-03-31 07:52:42 +05:30
parent 004506cf9a
commit 9d04ffb63a
3 changed files with 37 additions and 8 deletions

View File

@@ -54,9 +54,31 @@ export const sanitizeExaConfig = (
};
};
export const announceError = (setAnnouncement: (msg: string) => void, error: unknown) => {
const message = error instanceof Error ? error.message : "Unexpected error";
export const announceError = (
setAnnouncement: (msg: string) => void,
setAnnouncementSeverity?: (severity: "info" | "error" | "success") => void,
error?: unknown
) => {
let message = "Unexpected error occurred. Please try again.";
if (error instanceof Error) {
message = error.message;
// Simplify common error messages
if (message.includes("RESOURCE_EXHAUSTED") || message.includes("quota")) {
message = "API quota exceeded. Please check your API keys or try again later.";
} else if (message.includes("All LLM providers failed")) {
message = "AI service temporarily unavailable. Please try again later.";
} else if (message.includes("No LLM API keys configured")) {
message = "API keys not configured. Please contact support.";
} else if (message.includes("RESOURCE_EXHAUSTED")) {
message = "API quota exceeded. Please check your subscription or try again later.";
} else if (message.length > 100) {
message = "An error occurred during analysis. Please try again.";
}
}
setAnnouncement(message);
if (setAnnouncementSeverity) {
setAnnouncementSeverity("error");
}
};
export const getStepLabel = (step: string | null): string => {