diff --git a/apps/nextjs/src/app/[locale]/manage/custom-widgets/_custom-widget-form.tsx b/apps/nextjs/src/app/[locale]/manage/custom-widgets/_custom-widget-form.tsx
index 7c9db4577..99d4e38ce 100644
--- a/apps/nextjs/src/app/[locale]/manage/custom-widgets/_custom-widget-form.tsx
+++ b/apps/nextjs/src/app/[locale]/manage/custom-widgets/_custom-widget-form.tsx
@@ -1,7 +1,7 @@
"use client";
import { useEffect, useMemo, useRef, useState } from "react";
-import { Box, Button, Paper, SegmentedControl, Stack, TextInput, Textarea } from "@mantine/core";
+import { Alert, Box, Button, List, Paper, SegmentedControl, Stack, Text, TextInput, Textarea } from "@mantine/core";
import {
IconAlertCircle,
IconApi,
@@ -119,7 +119,7 @@ export function CustomWidgetForm({ mode, initialValues, definitionId }: CustomWi
[candidate, requestDiagnostics, templateDiagnostics],
);
- const { save, runPreview, pasteAiResponse, copyDiagnostics, savePending, previewPending } =
+ const { save, runPreview, pasteAiResponse, copyDiagnostics, saveIssues, savePending, previewPending } =
useCustomWidgetFormActions({
mode,
definitionId,
@@ -164,6 +164,21 @@ export function CustomWidgetForm({ mode, initialValues, definitionId }: CustomWi
{ value: "preview", label: w("section.preview") },
]}
/>
+ {saveIssues.length > 0 && (
+ }>
+
+ {w("saveError.description")}
+
+
+ {saveIssues.map((issue, index) => (
+
+ {issue.path ? `${issue.path}: ` : ""}
+ {issue.message}
+
+ ))}
+
+
+ )}