diff --git a/frontend/src/pages/ServicesPage.tsx b/frontend/src/pages/ServicesPage.tsx index a54dcb3..7d4d64b 100644 --- a/frontend/src/pages/ServicesPage.tsx +++ b/frontend/src/pages/ServicesPage.tsx @@ -175,9 +175,11 @@ function CreateServiceDialog({ const { data: types = [] } = useServiceTypes(); const saveService = useSaveServiceInstance(); const [draft, setDraft] = useState(null); + const [submitError, setSubmitError] = useState(null); function reset() { setDraft(null); + setSubmitError(null); } async function save() { @@ -190,9 +192,14 @@ function CreateServiceDialog({ secrets: draft.secrets, enabled: draft.enabled, }; - await saveService.mutateAsync(input); - reset(); + setSubmitError(null); + try { + await saveService.mutateAsync(input); + reset(); onClose(); + } catch (err) { + setSubmitError(err instanceof Error ? err.message : String(err)); + } } const selectedType = types.find((t) => t.service_type === draft?.serviceType); @@ -264,6 +271,11 @@ function CreateServiceDialog({ )} + {submitError ? ( + + {submitError} + + ) : null} {draft ? (